16 Commits

Author SHA1 Message Date
SoftFever
92ea1ce57e Feat/update preset validator (#14507)
# Description

This PR expands profile validation so we can catch backward
compatibility issues with custom presets generated by older OrcaSlicer
releases. It also adds missing `renamed_from` metadata for presets that
were renamed or moved, so older user presets can resolve their original
parent names against the current system profiles.

## Background

Many users have reported missing preset issues after upgrading past
2.4.1. Investigation showed two common causes:

- preset lookup and compatibility checks did not always account for
`renamed_from`
- some renamed base presets were missing the old preset name in their
`renamed_from` metadata

The existing profile workflow validates the current system profile tree
and a single nightly-generated custom preset bundle. That is useful for
catching current profile errors, but it does not validate user presets
generated by older OrcaSlicer versions against the current system
profiles. As a result, older missing-parent compatibility gaps can slip
through.

## Changes

- Update `check_profiles.yml` to validate historical custom preset
fixtures from `OrcaSlicer/OrcaSlicer-profile-validator`.
- Download the fixture manifest from the public `fixture-archive`
release.
- Validate each `orca_custom_presets_<version>.zip` fixture
independently against the current PR's `resources/profiles`.
- Generate per-version validation logs and upload them as workflow
artifacts.
- Fail profile validation if any historical fixture version fails.
- Add missing `renamed_from` aliases for renamed/moved presets found by
the historical fixture validation.

## Profile Compatibility Fixes

This PR adds aliases for older parent names including:

- `0.20mm Bambu Support W @BBL X1C` -> `0.20mm Standard @BBL X1C`
- `Bambu PLA Impact @BBL X1C` -> `Bambu PLA Impact @System`
- `Ginger Generic rPLA` -> `Ginger Generic PLA`
- `Ginger Generic rPETG` -> `Ginger Generic PETG`
- legacy `Panchroma PLA Stain` BBL filament names -> current `Panchroma
PLA Satin` names
- legacy Elegoo casing/name variants such as `Elegoo RAPID PLA+`,
`Elegoo RAPID PETG`, `Elegoo RAPID PETG+`, and `Elegoo PETG Pro @System`

## Validation Flow

The custom preset validation step now:

1. Downloads `manifest.json` from the `fixture-archive` release.
2. Iterates over every fixture listed in the manifest.
3. Copies the current branch's `resources/profiles` into a temporary
profile tree.
4. Removes any existing `user` directory from that temporary tree.
5. Unzips exactly one historical fixture into the temporary tree.
6. Runs `OrcaSlicer_profile_validator -p <temp profile tree> -l 2`.
7. Writes a version-specific log and a consolidated summary.

This keeps validation scoped per fixture version and avoids mixing
generated user presets from different OrcaSlicer releases.

## Fixture Source

Historical fixtures are stored as public release assets in:

`OrcaSlicer/OrcaSlicer-profile-validator`, release tag `fixture-archive`

Each release asset is expected to be named like:

```text
orca_custom_presets_v2.4.1.zip
```

## Testing

Validated locally with:

- current system profile validation
- BBL filament subtype validation
- historical custom preset fixture validation
- extra profile JSON check in a clean profile tree

The affected historical fixture set passed after adding the missing
`renamed_from` aliases.

The release manifest controls which fixture versions are validated.
[How to Download Pull Requests Artifacts for
Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
2026-07-06 12:27:47 +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
yw4z
054a173af7 Fix possible crash on startup because of low max volumetric speed on profiles (#13716)
* Update fdm_filament_common.json

* update

* Update fdm_filament_common.json
2026-05-18 19:00:48 +03:00
yw4z
95cf1745a8 Profile folder optimizations (Anycubic, Creality, Elegoo, Flashforge, Qidi, Prusa, Re3d, Rh3d, Snapmaker, Sovol and more) (#13149)
* anker

* blocks

* prusa

* zbolt

* snapmaker

* iQ

* eryone

* OpenEYE

* RH3D

* anycubic kobra neo

* kobra neo cover

* prusa one L cover

* longer lk10 & plus

* anycubic predettor

* creality covers

* k2 - k2 pro bed models

* m3d enabler d8500

* artillery m1 pro

* wemake3d

* Update Anet A8 Plus(A8+)_cover.png

* cubicon

* qidi

* Update Qidi X-Max 4_cover.png

* re3D

* Update Flashforge Artemis_cover.png

* flashforge

* tronxy

* Update flashforge_g2s_buildplate_model.stl

* Update FlyingBear Ghost7-bed.stl

* lulzbot

* Rolohaun3D

* Raise3D

* Update ThePositron_bed_texture.svg

* Mellow M1

* flsun

* CoPrint

* chuanying

* artillery

* anycubic

* sovol

* comgrow

* elegoo

* fix conflict

* update

* Update M5-CE-texture.svg

* prusa

* anker

* creality texture and model

* creality covers

* magicmaker

* Update wm_buildplate_model.stl

* comgrow

* infimech

* voxelab

* flashforge

* peopoly

* biqu

* ginger additive

* e3ng

* flashforge

* wanhao

* compress covers

* re3D

* wemake3d

* update

* flsun

* flashforge

* elegoo

* creality

* blocks

* update

* anycubic

* artillery

* Update Co_Print_ChromaSet_buildplate_texture.svg

* comgrow

* Update Taz_Pro_Dual_printbed.svg

* Update elegoo_orangestorm_giga_buildplate_texture.svg

* snapmaker

* flashforge

* anycubic 3 and S1

* artillery

* artillery

* update

* update

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-04-26 20:17:08 +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
f4224e9780 tidy up and bump profile version (#12889)
* tidy up and bump profile version

* fix error

* tidy up

* fix

* tide up more

* fix errors

* fix more errors
2026-03-23 01:17:34 +08:00
yw4z
3c65617139 Fixes / Improvements for Covers & Printer Selection dialog (#11151)
* init

* update

* Crop cover images

* match setup wizard UI

* update

* tiertime

* anycubic

* anycubic

* construct3d

* update

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2025-11-04 10:16:06 +08:00
yw4z
ff0507e5a3 Profile folder optimizations (Anycubic, Artillery, Bambu Lab, BIQU, Creality, Flashforge, Prusa, Ratrig, Sovol, Volumic, Voron, VzBot, Z-Bolt, Wanhao and more) (#10806)
* init

* voron covers

* voron models

* qidi hotends

* ultimaker

* seckit

* kingroon

* Update kp3s_bed.stl

* default hotend

* VzBot

* Update goliath.stl

* Construct3D

* comgrow

* biqu

* artillery

* anycubic

* bambulab

* flashforge

* chuanying

* update

* ratrig

* snapmaker

* Update sovol_zero_buildplate_model.stl

* sovol

* sovol

* Update wm_3dp_hotend.stl

* Update magicmaker_hotend.stl

* flsun

* iQ

* wanhao

* deltamaker

* phrozen

* MagicMaker covers

* z-bold

* volumic

* VzBot covers

* custom printers

* custom printer covers

* orca arena

* Update Orca Arena X1 Carbon_cover.png

* creality

* sovol sv08 max

* qidi texture

* Update qidi_xplus_buildplate_texture.png

* bump versions

* folgertech

* twotrees

* VzBot

* dremel

* FlyingBear

* Wanhao

* wanhao

* Delete 230 - Mono320x320.png

* voron

* voron

* voron

* seckit

* ultimaker

* kingroon

* default hotend

* Update qidi_xseries_gen3_hotend.stl

* Update deltamaker_2_buildplate_texture.svg

* vzbot

* Update goliath.stl

* biqu

* anycubic

* folgertech

* geetech

* ginger additive

* anycubic

* Update Wanhao D12-300_hotend.stl

* phrozen

* bump versions

* fix missing files on linux & add new models for sv07

* fix missing files

* Prusa

* update

* Update ultimaker_2_buildplate_model.stl

* fix all cover images

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2025-10-25 15:41:29 +08:00
SoftFever
4f50fdc94e Fixed many profile issues and cleaned up some messes. (#10686) 2025-09-11 17:50:53 +08:00
Ian Bassi
f44e90b884 Transparent printers (#9888) 2025-06-13 14:23:47 +08:00
SoftFever
6af6a42ed9 Fix issues for Peopoly profiles:
fixes includes:
1. 0.6 and 0.8 nozzles are not displayed
2. Some filaments are not enabled for 0.6 0.8 nozzle
3. version number
4. change default sparse_infill_pattern to crosshatch
5. change top_surface_pattern to monotonicline
2024-06-05 22:48:02 +08:00
Peopoly
3e232a86e8 Magneto X profile (#5590)
* Add files via upload

* Update fdm_process_pply_common.json

* test on v1.8/1.9/2.0/2.1 portable version
2024-06-05 22:14:06 +08:00
SoftFever
0459c28596 Tweak default parameters
1.  Change default ensure_vertical_shell_thickness value back to ensure_all as suggested by @igiannakas
2.  Change default sparse_infill_pattern vaule to ipCrossHatch
2024-05-29 23:07:29 +08:00
SoftFever
f13dc1fdcd bump profiles version to 2.1, change most profiles' top_surface_pattern to monotonicline as default pattern 2024-05-22 22:54:56 +08:00
Thomas
eae2703610 Optimized PNG files (#4294)
* Optimized PNG files

* Added back hints

* Revert "Added back hints"

This reverts commit e1d3890b08.

* Fixed Comgrow T500 cover background
2024-03-04 22:00:47 +08:00
Peopoly
b23ab4434d 🔧 add Peopoly Magneto X profiles (#3944) 2024-02-05 00:23:57 +07:00