Commit Graph

6 Commits

Author SHA1 Message Date
SoftFever
8cb2e4e01e profiles: deterministic setting_id from vendor/type/name (#14432)
* profiles: enforce globally-unique, per-vendor-namespaced setting_id

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

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

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

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

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

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

* bump profile version
2026-06-27 20:11:25 +08:00
hamham999
abe6f95aae Updated profiles for all Creality K-series printers (+CFS-c support) and Creality SparkX i7 support (#13947)
* v2 updated profiles and fixes

* Add files via upload

fixing timelaps error

* Add files via upload

fix timelapses

* syntax fix

* fixing profil errors

* Add files via upload

fixing

* Add files via upload

fixing errors

* fixing syntax errors

* Add files via upload

syntax fix

* Add files via upload

naming fix

* Update SPARKX startgcode

* Update SPARKX i7 startgcode

* Update SPARKX i7 startgcode

* Update SPARKX i7 startgcode

* delete old file dublicates

* SparkX gcode fix

* indentation fix

* name changes of printers and deleted 2025 versions

* syntax fix

* fixes

* fixes

* profil name fixes and syntax

* fixed naming restored old names, renamed Ender 3 S1 Sonic, fixed Creality.json - used original formating and fixed the printer list order

* syntax

* Add files via upload

syntax, formating

* differences fix

fixing deleted lines in creality.json

* differences fix in creality.json

* Update Creality CR-10 SE.json

* Update Creality CR-10 V3.json

* Update Creality CR-6 Max.json

* Update Creality CR-10 V3.json

* Update Creality CR-6 SE.json

* Update Creality Ender-3 Pro.json

* Update Creality Ender-3 S1 Plus.json

* Update Creality Ender-3 V3 KE.json

* Update Creality Ender-3.json

* Update Creality Ender-5 Pro (2019).json

* Update Creality K1 Max.json

* Update Creality K1.json

* Update Creality K1C.json

* Update Creality K2 Plus.json

* Update Creality K2 Pro.json

* Update Creality K2.json

* filament and process files formating and fixes form comments

* formating fixes

* 0 value fix

* combine filament profiles

* fix deleted filament

* machine files formatting

* machine files formatting

* Update Creality Hi.json change bed type

* Update bed type Creality Ender-5 Max.json

* chore(profiles/Creality): update SPARKX i7 process names

Update the profile names according to the existing ones, according to
layer height vs nozzle diameter:

- 0.10mm @ 0.2: "HighDetail"
- 0.08mm @ 0.4: "SuperDetail"
- 0.12mm @ 0.4: "Fine"
- 0.16mm @ 0.4: "Optimal"
- 0.20mm @ 0.4: "Standard" (maintained)
- 0.24mm @ 0.4: "Draft"
- 0.28mm @ 0.4: "SuperDraft"
- 0.30mm @ 0.6: "Standard" (maintained)
- 0.40mm @ 0.8: "Standard" (maintained)

This leaves the "HueForge" one untouched, that's it's own setting.

* chore(profiles/Creality): update machine with new process name

Matches the default process for the 0.2 nozzle to the renamed process.

* chore(profiles/Creality): update processes on `Creality.json`

Update the main `Creality.json` manifest with the updated process (file)
names.

* Update Creality K1 Max (0.4 nozzle).json

* Update Creality K1 Max (0.6 nozzle).json

* Update Creality K1 Max (0.8 nozzle).json

* delete cr30 and k1 se naming fix

* Update 0.20mm Standard @Creality K1 SE 0.4.json

* Update Creality.json delete duplicat entry

* fixed formatting

* split PR

* formatting fixes

* settings id instead of filament id delete

* Delete Creality.json in wrong location

* delete filament id

* Update Creality SPARKX i7 0.2 nozzle.json

* Update Creality SPARKX i7 0.4 nozzle.json

* Update Creality SPARKX i7 0.6 nozzle.json

* Update Creality SPARKX i7 0.8 nozzle.json

* delete ender 5 files

* delete ender 5 max files

* adding ender 5 max files

* Update Creality Hi 0.6 nozzle.json

* fixes from comments

* fixes from comments

* fixes from comments and adding filamentid back

* tabs formatting fixes

* fixes

* K1C fixes and printer_structure delete undefined

* formatting

* fixes from comments

* fixes from comments

* use original pictures

* naming fixes, Default Filament profile and Filaments fixed

* match order of key process files

* match order in Creality.json and fix Profile error

* order of printers in menu fix and max accel warning fixed

* revert back fixes for warnings

* fix duplicate keys from resolving merging conflicts

---------

Co-authored-by: Alys Andreollo <3528187+alysandreollo@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-06-06 17:36:12 +08:00
Ian Bassi
ea35b9ce68 Divided filament for features (#14042)
* Implement legacy key handling to address possible profile issues following semantic change of per feature filaments

* Reimport base

* Fix inner wall

* Profiles update

---------

Co-authored-by: igiannakas <ioannis@my-spot.co.uk>
2026-06-05 20:45:43 +08:00
Ian Bassi
3db37d004a Fix + Support 'Default' filament option (index 0) (#13887)
* Support 'Default' filament option (index 0)

Treat filament index 0 as the new "Default" (use active object/part filament) instead of using 1. Update config defaults and tooltips for wall/sparse/solid infill filament options (min/default -> 0, tooltip explains "Default"). Adjust normalization and propagation logic to respect explicit feature overrides and only apply base extruder when feature values are zero; only copy sparse->solid infill when sparse > 0. Introduce FeatureFilamentOverrideMask and clamp_feature_filament_to_valid to resolve and clamp feature filaments. Update UI lists and selection behavior to expose a "Default" entry and handle zero-based indices in PartPlate and Plater.

* enable_filament_for_features option

Co-Authored-By: LixNix <105106115+lixnix@users.noreply.github.com>

* \n

* Allow wipe_tower_filament to equal nozzle count

Relax the assertion in Print::extruders to permit wipe_tower_filament == config().nozzle_diameter.size(). The configuration value is 1-based and the code subtracts 1 when pushing the extruder index, so equality should be valid and selecting the last nozzle should not trigger an assertion.

* Revert "Allow wipe_tower_filament to equal nozzle count"

This reverts commit 2c976574327a8bcdc74a1b296bf1aaff7752a94e.

* Revert "enable_filament_for_features option"

This reverts commit 01c13baeddb8e26793f752deab788ee4d086975b.

* Migrate legacy feature filament defaults

Add migration logic to convert legacy feature filament selections from 1 to 0 for older 3mf files. Introduces a local migrate_legacy_feature_filament_defaults lambda in src/OrcaSlicer.cpp and src/slic3r/GUI/Plater.cpp that scans keys (wall_filament, sparse_infill_filament, solid_infill_filament, support_filament, support_interface_filament) on configs/objects/volumes, updates values, counts conversions and logs the result. Also adds a Semver check for "2.4.0-dev" in OrcaSlicer to trigger the migration for files older than that version. This preserves expected default filament selections when loading older project files.

* Update OrcaSlicer.cpp

* Extract migration helper to ConfigMigrations

Centralize legacy feature-filament default migration by moving the duplicated lambda into ConfigMigrations::migrate_legacy_feature_filament_defaults (src/libslic3r/Config.cpp) and declaring it in Config.hpp. Update OrcaSlicer.cpp and slic3r/GUI/Plater.cpp to call the new function instead of inline lambdas. The helper converts specific feature filament keys (wall_filament, sparse_infill_filament, solid_infill_filament, support_filament, support_interface_filament) from int 1 to 0 and returns the count of conversions to avoid duplicated migration logic.

* Remove DynamicFilamentList1Based and consolidate lists

Delete the specialized DynamicFilamentList1Based struct and its global instance. Update Choice registrations to use the single dynamic_filament_list for wall, sparse_infill and solid_infill filaments, and remove the extra update call for the removed instance. This consolidates filament choice handling and removes duplicated logic in Plater.cpp.

* move it

* fix objects

* Update Config.hpp

* Update profiles
2026-05-29 10:54:26 +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
Olof Larsson
2a7a3d0cd7 feat: add Creality K2 Support (#12662)
* feat: add K2 support

* fix: remove k2 pro from k2 process json

* fix: set correct start gcodes for the nozzles
2026-03-09 19:48:43 +08:00