The CFS-aware filament sync resolves its agent via switch_printer_agent(),
which reads the preset's `printer_agent` field and falls back to "orca" when
unset -- so the K-series presets need printer_agent="crealityprint" (the id
registered by CrealityPrintAgent) in addition to host_type="crealityprint"
(classic PrintHost/LAN-discovery). Without printer_agent the Device-tab sync
defaults to the Orca agent and CFS sync doesn't engage. Set both on the
F008/F012/F021 models that supports_multi_color_print() covers (not K2 SE).
Both keys are in s_PhysicalPrinter_opts, so a new Physical Printer inherits
them from the preset.
Made small performance, safety, and readability improvements.
Now the logic is only called to move the build plate lower than the tallest object if the print_sequence is, "by object".
More precise checks to not move the plate beyond the maximum build volume.
* Bump Elegoo profile version to refresh installed bundle
Bumps the Elegoo vendor profile version so installed profile bundles are refreshed from bundled resources after the recent Elegoo profile sync.\n\nThe previous version stayed at 02.04.00.00 after the profile layout changed, so existing installs could keep loading stale system/Elegoo files. That stale bundle can abort during profile loading and cause user presets inheriting from Elegoo machines, such as OrangeStorm Giga and Neptune 3 Max, to report missing parents.\n\nValidation:\n- jq parsed resources/profiles/Elegoo.json\n- verified all Elegoo.json sub_path entries exist\n- git diff --check
* Fix Elegoo process profile manifest
* Fix: Disable redundant toolchange retraction for Elegoo Centauri Carbon
Sets `retract_length_toolchange` to 0 in the Elegoo Centauri Carbon (ECC) machine profile.
This resolves an issue where a massive filament blob would form on the prime tower immediately after resuming a manual filament change (M600). The blob was caused by a conflict between OrcaSlicer's default toolchange logic and Elegoo's hardcoded firmware behavior:
- Elegoo's firmware (specifically the `cmd_PAUSE` and `cmd_RESUME` sequences) completely takes over pressure management during an M600. It performs its own initial 2mm retraction, a 120mm purge, and a silicone brush wipe, returning the print head to the prime tower perfectly primed.
- Previously, Slicer was unaware of the firmware's priming and would issue a redundant 2mm un-retract (`G1 E2`) upon resume. Forcing 2mm of filament out of an already-full nozzle created the blob.
By disabling the toolchange retraction (`0`), Slicer correctly hands off filament pressure management during an M600 entirely to the Elegoo firmware, preventing double-retractions and eliminating the blob.
* fix errors after merging main
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* 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 2c97657432.
* Revert "enable_filament_for_features option"
This reverts commit 01c13baedd.
* 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
* Update/add re:3D profiles.
* Fix encoding issue with UTF-8 BOM
* Change spaces to tabs.
* Fix alignment-based space indentation issues.
* Test: rename_from property
* Test 2: rename_from property
* Test 3: use 'renamed' instead of 'rename'
* Add renamed property for each conflicting profile.
* Revert to optimized assets improved on [#13149](https://github.com/OrcaSlicer/OrcaSlicer/pull/13149)
* Sync Elegoo profiles from ElegooSlicer
Update vendor Elegoo.json, filament/machine/process trees, and OrcaFilamentLibrary
Elegoo entries. Align machine default material names with existing filament preset names.
* feat: expose filament_name for G-code export filename format
Derive from filament_settings_id for the first active extruder and strip the suffix after @, matching ElegooSlicer so filename_format can use {filament_name}.
* chore: reorder Elegoo entries in OrcaFilamentLibrary
Group Elegoo @base profiles and bump library version to 02.03.02.62.
* sync OrcaFilamentLibrary.json with Elegoo filament profiles
* fix: clean up Elegoo process renamed_from for profile validation
Add single renamed_from only where preset names changed from legacy Orca
names; remove duplicate Rapid @System library entries that conflicted with
ECC2 vendor presets.
* fix(profiles): add missing Elegoo renamed_from for profile validation
CI custom-preset tests still inherit legacy Orca preset names that no
longer exist after the Elegoo bundle update. Add renamed_from on process,
Neptune 4 machines, OrcaFilamentLibrary filaments, and Giga profiles so
inherits resolve again, without changing print parameters.
Update Snapmaker U1 (0.4 nozzle).json
Updated Snapmaker U1 0.4 nozzle "change_filament_gcode" and "machine_end_gcode" to fix the issue of collisions when using "Print by Object"
Enable air filtration support in affected system printer profiles
Some system printer profiles that support air filtration had the feature
incorrectly disabled in the printer settings.
This caused the related filament settings to be hidden, making the feature
unavailable to users even though it is supported by the printer.
Enable "support_air_filtration" in affected system printer profiles and
bump profile version thus forcing Orca to refresh cached settings.
This ensures air filtration settings are visible and usable on printers
that support the feature.
* [Fix] Anycubic machine print profiles fix-patch
default_material changed. Wrong referenced Material deleted. No filament profile available.
* Anycubic Kobra X profile
These are the files for a new printer profile in OrcaSlicer for Anycubic Kobra X
Tested on Ubuntu 26.04 LTS.
Local Build = passed
OrcaSlicer Profile Validator = passed
Python Profile Validation Script = passed
* Rename resources/profiles/0.08mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/process/0.08mm Standard @Anycubic Kobra X 0.4 nozzle.json
correcct folder
* Rename resources/profiles/0.12mm High Quality @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/process/0.12mm High Quality @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/0.12mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/process/0.12mm Standard @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/0.16mm High Quality @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/process/0.16mm High Quality @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/0.20mm High Quality @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/process/0.20mm High Quality @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/0.16mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/process/0.16mm Standard @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/0.20mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/process/0.20mm Standard @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/0.24mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/process/0.24mm Standard @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/0.28mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/process/0.28mm Standard @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/process/0.08mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/process/0.08mm Standard @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/process/0.12mm High Quality @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/process/0.12mm High Quality @Anycubic Kobra X 0.4 nozzle.json
* Rename 0.12mm Standard @Anycubic Kobra X 0.4 nozzle.json to process0.12mm Standard @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/Anycubic/process0.12mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/process/0.12mm Standard @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/process/0.16mm High Quality @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/process/0.16mm High Quality @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/process/0.16mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/process/0.16mm Standard @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/process/0.20mm High Quality @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/process/0.20mm High Quality @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/process/0.20mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/process/0.24mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/process/0.24mm Standard @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/process/0.28mm Standard @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/process/0.28mm Standard @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/Anycubic Kobra X.json to resources/profiles/Anycubic/machine/Anycubic Kobra X.json
* Rename resources/profiles/Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/machine/Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/Anycubic Kobra X_buildplate_model-test.stl to resources/profiles/Anycubic/Anycubic Kobra X_buildplate_model-test.stl
* Rename resources/profiles/Anycubic Kobra X_buildplate_texture-test.svg to resources/profiles/Anycubic/Anycubic Kobra X_buildplate_texture-test.svg
* Rename resources/profiles/Anycubic Kobra X_cover.png to resources/profiles/Anycubic/Anycubic Kobra X_cover.png
* Rename resources/profiles/Anycubic ABS @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/Anycubic PETG @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/Anycubic ASA @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/Anycubic PLA @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/Anycubic PLA Glow @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/Anycubic PVA @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic PVA @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/Anycubic TPU 95A @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/Anycubic TPU for ACE @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra X 0.4 nozzle.json
* Rename resources/profiles/Generic PETG @Anycubic Kobra X 0.4 nozzle.json to resources/profiles/Anycubic/filament/Generic PETG @Anycubic Kobra X 0.4 nozzle.json
* Delete resources/profiles/Anycubic/Anycubic Kobra X_buildplate_texture-test.svg
wrong file
* Delete resources/profiles/Anycubic/Anycubic Kobra X_buildplate_model-test.stl
wrong file
* corrected Files
correct files uploaded (buildplate).
missing file was included (hotned)
* Delete resources/profiles/Anet directory
No profiles found for vendor: Anet at OrcaSlicer/resources/profiles/Anet.json
* Delete resources/profiles/Anycubic.json
Replaced
* Replaced
Replaced after running: python3 ./orca_filament_lib.py --fix --force
* Space indentation correction via script
Space indentation correction via script
* Space indentation correct via script
Indentation Check Failed
python3 ./scripts/orca_filament_lib.py --fix --force
* Space indentation corrected via script
Indentation Check Failed
python3 ./scripts/orca_filament_lib.py --fix --force
* Tab correction
* Tab correction
* Tab correction
* Tab correction
* fix format
* Anet restore
* Create Anet A8 Plus 0.4 nozzle.json
* restored Anet
* Delete resources/profiles/Anet/machine directory
the Anet profile is corrupted
* Create Anet A8 Plus.json
* machine
* Rename resources/profiles/Anet/Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/machine/Anet A8 Plus 0.4 nozzle.json
corect folder
* Filament
* Rename resources/profiles/Anet/Anycubic Generic ABS @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/filament/Anycubic Generic ABS @Anet A8 Plus 0.4 nozzle.json
* Rename resources/profiles/Anet/Anycubic Generic ASA @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/filament/Anycubic Generic ASA @Anet A8 Plus 0.4 nozzle.json
* Rename resources/profiles/Anet/Anycubic Generic PA @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/filament/Anycubic Generic PA @Anet A8 Plus 0.4 nozzle.json
* Rename resources/profiles/Anet/Anycubic Generic PA-CF @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/filament/Anycubic Generic PA-CF @Anet A8 Plus 0.4 nozzle.json
* Rename resources/profiles/Anet/Anycubic Generic PC @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/filament/Anycubic Generic PC @Anet A8 Plus 0.4 nozzle.json
* Rename resources/profiles/Anet/Anycubic Generic PETG @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/filament/Anycubic Generic PETG @Anet A8 Plus 0.4 nozzle.json
* Rename resources/profiles/Anet/Anycubic Generic PLA @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/filament/Anycubic Generic PLA @Anet A8 Plus 0.4 nozzle.json
* Rename resources/profiles/Anet/Anycubic Generic PLA-CF @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/filament/Anycubic Generic PLA-CF @Anet A8 Plus 0.4 nozzle.json
* Rename resources/profiles/Anet/Anycubic Generic PVA @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/filament/Anycubic Generic PVA @Anet A8 Plus 0.4 nozzle.json
* Rename resources/profiles/Anet/Anycubic Generic TPU @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/filament/Anycubic Generic TPU @Anet A8 Plus 0.4 nozzle.json
* process
* Rename resources/profiles/Anet/0.15mm Optimal @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/process/0.15mm Optimal @Anet A8 Plus 0.4 nozzle.json
* Rename resources/profiles/Anet/0.20mm Standard @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/process/0.20mm Standard @Anet A8 Plus 0.4 nozzle.json
* Rename resources/profiles/Anet/0.30mm Draft @Anet A8 Plus 0.4 nozzle.json to resources/profiles/Anet/process/0.30mm Draft @Anet A8 Plus 0.4 nozzle.json
* Delete resources/profiles/Anet/machine directory
* Delete resources/profiles/Anet/filament directory
* Delete resources/profiles/Anet/process directory
* restore
* Rename resources/profiles/Anet/Anet A8 Plus.json to resources/profiles/Anet/machine/Anet A8 Plus.json
* restore
* restore
* Delete resources/profiles/Anet/machine/Anet A8 Plus.json
* Changed to original OrcaSlicer profile
My modified printer profiles were overwritten by the original OrcaSlicer profiles. This reversed the changes made under “default_materials.” As a result, 47 errors appear when running the “Python Profile Validation Script”!
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* K2 Plus: add print area bounding box for adaptive bed mesh
The K2 firmware reads MINX/MINY/MAXX/MAXY gcode comments to
determine the adaptive bed mesh area. Without these, it falls
back to full bed mesh even when calibration is enabled.
K2 Pro also reads these comments (its profiles already had them).
Signed-off-by: Igor Mammedov <niallain@gmail.com>
* K2: add print area bounding box for adaptive bed mesh
Same change as K2 Plus — prepend MINX/MINY/MAXX/MAXY gcode comments
so firmware can determine the adaptive bed mesh area.
K2 Pro already had these.
Signed-off-by: Igor Mammedov <niallain@gmail.com>
* Creality: bump profile version to 02.03.02.72
Signed-off-by: Igor Mammedov <niallain@gmail.com>
---------
Signed-off-by: Igor Mammedov <niallain@gmail.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Add Cubicon xCeler-Mini printer model and material profiles
- Add xCeler-Mini machine configuration and 0.4mm nozzle profile
- Add filament profiles for all Cubicon materials (PLA, PLA+, PLAi21, ABS, ABSk, ABS-A100, PETG, PC, PA-CF) for xCeler-Mini
- Add default process profile for xCeler-Mini 0.4mm nozzle
- Add xCeler-Mini cover image
- Update Cubicon.json to register xCeler-Mini machine, filaments, process, and machine list
- Update PA-CF and PLA base filament profiles (filament_max_volumetric_speed adjustment)
- Fix missed per-machine filament and process profiles for xCeler-I and xCeler-Plus
* fix format
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Fixed PrintConfig.hpp order so Repetier outputs, updated ConfigWizard to use gcode_flavor value rather than static
Add Repetier to enum values and labels
Update to add Repetier base profile to the setup wizard
Re-order gcode_flavors in PrintConfig.hpp and PrintConfig.cpp to match
Revise ConfigWizard.cpp to use gcode_flavor rather than list order
Add Repetier profiles and include in custom.json (profile disables m73 and stop emit machine limits which Repetier doesn't use)
* Fix JSON formatting in Custom.json
* Add support for pressure advance in Repetier flavor
* Add Repetier flavor show motion ability tab is visible
* Refactor jerk handling for Repetier flavor
* Update resources/profiles/Custom/machine/MyRepetier 0.4 nozzle.json
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update resources/profiles/Custom/machine/fdm_repetier_common.json
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/libslic3r/PrintConfig.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* add back localisation flag for Klipper
* tidy up indentation and braces
* Space indentation for Repetier profiles changed to tab
* Fix space indentation in Custom.json file for Repetier profiles
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Disable arc fitting by default on BBL P2S
* Update BBL P2S printer profile
* bump the version so that it automatically update the cache
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
Fix Ender-3 V3 KE nozzle switching by adding printer_variant
The four Creality Ender-3 V3 KE 0.X nozzle profiles were missing the
printer_variant key, so OrcaSlicer could not map a UI nozzle selection
to a specific profile and reverted every choice to 0.2mm. Add the
matching printer_variant to each, following the CR-10 SE / K1C pattern.