Commit Graph

20 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
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
SoftFever
4f50fdc94e Fixed many profile issues and cleaned up some messes. (#10686) 2025-09-11 17:50:53 +08:00
liberodark
1bd197df3a Anker Fix Name (#8029) 2025-01-20 20:42:51 +08:00
Geoffrey Ward
3caca2215d Jerk limit warning fix (#7660)
* Update fdm_process_common.json to use slower jerk settings to prevent belt tooth skipping

* Update fdm_process_anker_fast_common.json for faster jerk settings

* Update Max Jerk limit to be in line with real world machine limits

---------

Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
2024-12-05 08:13:47 +08:00
Robert Baker
763717da2a Update filename_format to AnkerMake Studio's default (#7116)
Update filename_format to Anker's default
Update fdm_process_common.json
2024-10-22 22:48:53 +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
Geoffrey Ward
16164e99a9 Add AnkerMake 0.6mm Nozzle Profiles (#4338)
* Correct consistency error in layer heights

* Initial 0.6 settings

* Set good retraction values

---------

Co-authored-by: Geofrey Ward <Xelinor@mail.com>
2024-03-05 22:37:28 +08:00
Geoffrey Ward
a5029c263c Add 0.2mm and 0.25mm nozzle profiles to AnkerMake printers (#4260)
* Add .02 nozzle profiles

* Remove carbon fiber 0.2 profiles

* Flag Filament Types Correctly

* Add missing PC 0.2 profile

* Correct PLA nozzle name typo

* Tune supports for the thinner layer lines

* Pull in latest main branch updates

* Correct Support bottom distance

* Correct the numbering

* Add 0.25mm Nozzle Profiles

* Enable manual filament changing for all AnkerMake Printers

* Pull in latest main branch updates

* Remove extra white space from file name

---------

Co-authored-by: Geofrey Ward <Xelinor@mail.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2024-03-01 21:37:08 +08:00
Geoffrey Ward
1487bdd69c Fixes Anker M5C profiles (#3862)
Fixes M5C profiles to use the old naming convention so they don't break existing M5c profiles

Co-authored-by: Geofrey Ward <Xelinor@mail.com>
2024-01-28 08:05:05 +00:00
Geoffrey Ward
d70fcc143f Refactor anker (#3845)
* Bring over bed and cover files

* Initial refactored configuration file with placeholders for adding more nozzles

* Uniqueify filament profiles

* Initial refactored machine profiles

* Remove placeholders

* Correct machine selection flow

* Correct Typo

* Add placeholders to bring CE profile settings current with new format

* Fixes #3326

* Port 0.4 Normal Mode Profiles

* Port fast mode profiles

* Remove superfluous settings

* Migrate existing filament profiles

* Update available nozzles and default materials

* Remove 'with' from file names

* Remove 'with' from file names

* Correct support object distance default

* Correct transcription errors

* Correct transcription error

* Bring max_travel_detour_distance into convention with other profiles

* Replace old profiles with the refactored profiles

* Correct name used from Extra Draft to Superdraft

* Re-use original names so printer profiles don't break

---------

Co-authored-by: Geofrey Ward <Xelinor@mail.com>
2024-01-28 10:01:44 +08:00
Geoffrey Ward
c26a73a1ca Default Anker support_base_pattern (Fixes #3326) (#3585)
* Fixes #3326
2024-01-14 23:09:46 +08:00
just-trey
a96ed26519 Profile: Anker M5/C first layer consistency improvements (#3321)
first layer consistency improvments
2023-12-29 00:04:45 +08:00
SoftFever
e624632969 semm 2023-09-09 13:19:59 +08:00
SoftFever
2a478ab4f9 post changes after merging BS1.7.4
Remove tracking etc..
2023-08-26 18:45:43 +08:00
just-trey
8567812fdc ENH: Thanks @just-trey for updating Anker profiles
Update Anker profiles and includes the new AnkerMake M5C printer.

github pull request: 2125

Change-Id: I961976420d0352a460e6ac79cc107a27aed83b62
2023-08-16 20:45:27 +08:00
salt.wei
4a3464243c ENH: pick Anker printer from orca
Thanks OrcaSlicer. Also fix the wrong
setting id.

Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: If70c1bebb853a2f2f9b90e7c66e886af0432b52a
2023-07-07 17:29:08 +08:00