Commit Graph
17 Commits
Author SHA1 Message Date
SoftFever feeea3e651 fix: treat renamed printer presets as compatible aliases (#14504)
# Description

Fixes user filament presets that reference an old printer preset name in
`compatible_printers`, even when the current system printer preset
correctly declares that old name in `renamed_from`.

## Core Issue

`PresetCollection::find_preset()` was updated to resolve `renamed_from`,
but this specific failure does not go through `find_preset()`.

For root user filament presets with empty `inherits`, Orca infers
`compatible_printers` from the filament name suffix after `@`. For
example:

```json
"ELEGOO PLA Base @Elegoo Neptune 4 Pro (0.4 nozzle)"
```

loads with:

```json
"compatible_printers": ["Elegoo Neptune 4 Pro (0.4 nozzle)"]
```

The current system printer preset is named:

```text
Elegoo Neptune 4 Pro 0.4 nozzle
```

and has:

```json
"renamed_from": "Elegoo Neptune 4 Pro (0.4 nozzle)"
```

However, filament compatibility was doing a direct string comparison
against the active printer name. Since that compatibility path does not
call `find_preset()`, the `renamed_from` mapping was never considered.

## Fix

Teach printer compatibility checks to treat
`active_printer.preset.renamed_from` entries as aliases of the active
printer name.

This preserves existing user preset JSON and avoids rewriting
`compatible_printers`, while allowing old printer suffixes to remain
compatible with renamed system printer presets.

## 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)
2026-07-06 12:27:46 +08:00
SoftFever 6d7eeb89dc profiles: deterministic setting_id from vendor/type/name (#14432)
* profiles: enforce globally-unique, per-vendor-namespaced setting_id

Many non-Bambu vendors copied Bambu's generic setting_ids (GFSA04 alone
appeared in 1557 files), so setting_id was not globally unique. This
namespaces every vendor's ids and reserves Bambu/OrcaFilamentLibrary space.

- Reserve "G*" (Bambu) and "O*" (OrcaFilamentLibrary) id spaces.
- Assign each other vendor a 2-char prefix (first+last letter, collision
  resolved) and renumber every instantiated preset to <PREFIX><NNNN>.
- Strip setting_id from base profiles (instantiation:false) per Bambu's
  convention; assign one to instantiated presets that lacked it.
- Remove the pre-existing misspelled "settings_id" key (91 files).
- filament_id is left untouched (it is a per-material id).
- Add one-time migration script scripts/assign_vendor_setting_ids.py with a
  persisted registry resources/profiles/vendor_prefixes.json. Re-runs freeze
  existing ids; only new vendors/profiles get new ids.
- Bump version in each changed vendor index file.
- Extend scripts/orca_extra_profile_check.py with a CI guard: global
  uniqueness, in-namespace, no base setting_id, no gaps, no settings_id typo.

7425 profile files changed across 61 vendors; 0 cross-vendor collisions;
validator clean; migration idempotent. BBL and OrcaFilamentLibrary id spaces
untouched.

* profiles: add setting_id authoring guide for new vendors / profiles

* profiles: drop in-repo README; setting_id guide now lives in the wiki

* profiles: derive setting_id deterministically from vendor/type/name

* bump profile version
2026-06-28 01:42:16 +08:00
Ian Bassi 16727644bb Reduce size by Json Fromatting (#13163)
Reduce the size of current and new JSONs by standardising them with 1 tab indentation instead of 4 spaces.
This effectively reduces the size by almost 20 MB.

| Current | New |
|---|---|
| 85.2 Mib | 67 Mib |

Used [JQ](https://jqlang.org/) `--tab` to automatically format every current JSON.

> [!NOTE]
> Some profiles had the arrays on the same line, but those created by Orca were in the standard format (each object below the previous one). In some cases, this increases the number of tabs due to the new lines, but the increase is negligible, and this way both the base profiles and those created by Orca maintain the same style.
2026-04-15 22:58:12 +08:00
SoftFever 4f50fdc94e Fixed many profile issues and cleaned up some messes. (#10686) 2025-09-11 17:50:53 +08:00
HYzd766 c217b53285 Qidi profile udpates: new filaments etc... (#8121) 2025-01-31 16:41:33 +08:00
HYzd766 a7924a662e Qidi.json (#6841)
* Qidi.json

* Merge branch 'main' into p1
2024-09-20 21:55:57 +08:00
HYzd766 8ae358e9bc Update QIDI profiles (#5017)
* Qidi.Json

* Qidi.json

* Qidi.json
2024-04-15 22:20:11 +08:00
Hukete 6d0369f5d7 Update QIDI profiles (#4549)
1)add Q1 Pro profiles
2024-03-18 23:07:40 +08:00
Hukete fdb73b2e2a Qidi: profiles updates (#2506)
Add TPU-95A HF
2023-10-25 17:11:24 +08:00
SoftFever e6fcbfae07 fix 2023-08-26 20:55:44 +08:00
SoftFever 6e1bdaf9d4 some misc changes (#1848)
* some misc changes
* stealth_mode: disable hms
* fix bbl camera  #1091 #1830
* fix anker
2023-08-20 20:02:54 +08:00
fr3ak2402 774c0bc1ad Adds printer profile for Qidi X-Plus printer (#915)
* Adding the Qidi X-Plus

Qidi X-Plus profile
Qidi X-Plus image

* Revision of the pressure plate model

Qidi X-Plus
2023-05-02 22:18:38 +08:00
fr3ak2402 e266b32b05 Add and revise Qidi printer
Add Qidi X-Max
Add Qidi X-CF Pro

Revise Start & End Code from X-Smart3, X-Plus3, X-Max3
2023-04-30 09:27:35 +02:00
fr3ak2402 7bcb6c8f76 Revised Qidi Filaments
Removal of standard filament color from all Qidi filaments
2023-04-28 12:08:02 +02:00
fr3ak2402 41569db0ac Adding the Qidi Printer Profiles
Revised Qidi Filament Profile
Adding a printing plate model
Revision of the printing plates texture
Revision of the Qidi printer family
2023-04-28 01:08:15 +02:00
SoftFever e87a447479 Revert "Merge pull request #868 from fr3ak2402/main"
This reverts commit 3ee801be50, reversing
changes made to bbbed5e8c3.
2023-04-27 23:11:47 +08:00
fr3ak2402 11e7498b82 Change Qidi printer profiles
Recording the profile from the X-Plus3.
Adjusting the names so that all names begin with Qidi.
Adding the Build Plates .
2023-04-25 19:41:51 +02:00