Commit Graph
56 Commits
Author SHA1 Message Date
Hanif Koh 8e330f951a Merge Main into Belt Printer
Merge origin/main (00429da739) into belt-printer.

Conflicts resolved:
- src/CMakeLists.txt: keep both wxInspector workarounds.
- GCodeProcessor.cpp: keep the belt compare_pos / z_for_height lines.
- PrintObjectSlice.cpp: the belt bbox-Z guard also covers main's
  printable_region_ids bookkeeping.
- TreeSupport.cpp: the belt-floor check runs before main's PendingNode
  queueing.
- Tab.hpp: keep the belt fields, drop the removed upload description
  fields.
- tests/libslic3r/CMakeLists.txt: keep both test files.

Also included:
- eSUN PLA belt presets declare their own filament_id (OFkrxQC4) and
  scripts/filament_id_snapshot.json is regenerated, as main's filament_id
  check requires.
- Custom.json version bumped to 02.04.00.05 so the belt entries reach
  existing installs.
- Fix the ambiguous WithinRel call in the belt apron width test, which
  otherwise breaks the fff_print build.
2026-09-14 16:33:08 +08:00
SoftFever fdc0ee18f1 fix vendor version 2026-09-03 17:47:29 +08:00
SoftFever 408db4b3b0 Wait for the toolchange temperature on the wipe tower
Adds a printer option that picks up the new tool without a blocking temperature
wait, travels to the wipe tower, and waits there right before purging, parked
beside the tower so the ooze from the heat-up lands next to it rather than on the
model. The incoming filament's target is raised ahead of the tool change, so the
heat-up overlaps both the change itself and the travel to the tower.

Off by default, and only offered for multi-extruder printers using a Type 2 wipe
tower; the generic toolchanger profile enables it.
2026-08-06 12:24:00 +08:00
harrierpigeon 725df64108 profiles: fix belt printer CI failures (slice check + setting_id)
The belt-printer branch is failing two profile gates. Both stem from the
three belt-only vendors (Custom's generic belt printer, IdeaFormer,
Printcepts) not existing upstream, so upstream maintenance passed them by.

Slice check: 4 of 1015 printers failed - Custom's MyBeltPrinter 0.2/0.4/
0.6/0.8 nozzle all fell back to "Default Setting". No process profile in
the Custom vendor listed any MyBeltPrinter in compatible_printers, and
Custom's fdm_belt_common pointed default_print_profile at
"0.20mm Standard @System", which does not exist in that vendor's index,
so the generic belt printer had no usable process at all. This gap dates
to when MyBeltPrinter was added (2026-04-07); it only started failing now
because the slice-check job is newer than that.

Adds two process profiles modelled on the sibling @MyKlipper ones:
  - 0.20mm Standard @MyBeltPrinter - 0.4/0.6/0.8 nozzles
  - 0.12mm Fine @MyBeltPrinter     - 0.2/0.4 nozzles
The split is forced by hardware: the 0.2 nozzle preset caps
max_layer_height at 0.16, so a single 0.20mm profile cannot legally cover
it. fdm_belt_common now defaults to the standard profile and the 0.2
nozzle preset overrides to the fine one.

setting_id: 14 files failed the rules introduced in #14432. That
migration renumbered 7425 files across 61 vendors but skipped these three,
leaving BabyBelt Pro, IdeaFormer IR3 V2 and MyBeltPrinter squatting the
"G*" id space reserved for Bambu (GMPC0BBP01, GMIF001, GM_BELT_00x) and
four instantiated filament/process presets carrying no setting_id at all.
Regenerated with scripts/assign_vendor_setting_ids.py.

Also repoints the identical dangling "0.20mm Standard @System" in
Printcepts' and IdeaFormer's fdm_belt_common at their own real process
profiles. That is a no-op today because both concrete printers override
it, but it is the same landmine that took out MyBeltPrinter.

Vendor index versions bumped so check_installed_vendor_profiles() will
re-install the corrected profiles over an existing install.

Note: changing a shipped preset's setting_id can orphan user presets that
reference it as base_id. #14432 accepted that tradeoff for 61 vendors;
this keeps these three consistent with the rest.

Verified: orca_extra_profile_check.py reports 0 errors across 66 vendors
(was 14 files with errors), and OrcaSlicer_profile_validator -s slices all
1015 printer presets successfully (was 4 failures).
2026-08-04 17:15:20 -05:00
SoftFever 6312caaf13 Add filament_retract_length_toolchange/filament_retract_restart_extra_toolchange config and update tool changer printer's profiles (#15039)
* update snapmaker profiles. largely ported for Snapmaker Orca fork

* update prime volume

* set precise_outer_wall to 1

* Update per-material multi-tool ramming to the filament library

* Add per-filament overrides for toolchange retraction

* Set toolchange retraction per filament for Snapmaker U1

* set default support type to tree

* format snapmaker profiles
2026-08-05 00:13:27 +08:00
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
Joseph Robertson 573e1c6544 Belt/fix profiles and minor oopsies (#42)
* fix duplicate printer, bump version

* clean up extra tab in space

* fix generic defaults
2026-06-05 03:11:38 -05:00
Joseph Robertson 8a578cdf00 Merge branch 'main' into belt/baseChanges 2026-05-30 21:39:03 -05:00
Jingxi-Polymaker ee8bb54ca8 Add more Polymaker filament presets (#13858)
* add new presets

* fix inhernce

* fix rename

* update

* apply fix

* update index
2026-05-29 15:46:41 +08:00
Joseph Robertson 72cafcbe06 Merge branch 'main' into belt/baseChanges 2026-05-22 15:23:07 -05:00
Joseph Robertson a9bae54f20 Rotate instead of shear for slicing stage (#30)
* initial commit

* fix upper bounds for assemblies

* significantly less Z shift issues, still not quite tamped down yet though

* add instrumentation to logs

* finally found the issue

* update printer defaults
2026-05-22 15:21:33 -05:00
SoftFever 16a992b4d5 bump profile version 2026-05-22 02:27:34 +08:00
Joseph Robertson f87a46ec6e fix X mirroring (#26)
Thanks to @hotcubcar for catching this!
2026-05-19 22:54:50 -05:00
Joseph Robertson da8b11b8ab HOTFIX: update generic belt printer profile (#23)
oops
2026-05-19 01:06:39 -05:00
Joseph Robertson c79970bedb Clean Up Settings Interface, Update Generic Profile (#22)
* clean up UI elements

* further cleaning

* final cleanup for first round of settings UI streamlining

* update generic belt printer settings

* fix generic again
2026-05-19 00:56:08 -05:00
harrierpigeonandClaude Opus 4.7 7252f6acb7 Merge upstream/main into belt/rebase/may-18
Reconciles the belt-printer branch with upstream PRs through #13723. Six
files had conflicts; three additional files needed manual follow-up fixes
where the auto-merge produced code that referenced upstream-renamed fields
or changed function signatures.

Notable reconciliations:
- TreeSupport.cpp: kept belt-floor early-exit branches around HEAD's
  drop-down logic, folded upstream's `(distance_to_top > 0 ? 1 : 0)`
  formula into the non-belt-floor path (upstream PR #11812). Dropped dead
  `roof_enabled`/`force_tip_to_roof` locals.
- TreeSupport3D.cpp: combined upstream's safety-offset + remove_small
  changes with HEAD's belt-floor clip in the per-slice trim loop. Dropped
  HEAD's `else` block (superseded by upstream's rewritten bottom-contact
  propagation) and re-added the belt-floor clip into the new propagation
  loop. Gated the propagation on belt printers to prevent OOM when
  belt-floor clipping produces empty initial slices.
- TriangleSelector.{cpp,hpp}: merged both new `select_patch` parameters
  (HEAD's `up_direction` and upstream's `select_partially`); body uses
  `dot(up_direction)` for the overhang angle check and forwards
  `select_partially` to `select_triangle`.
- SupportMaterial.cpp: `slicing_params.soluble_interface` →
  `zero_gap_interface_bottom` in HEAD's `detect_belt_floor_bottom_contacts`,
  matching upstream's same-purpose rename at line 2495.
- Custom.json, GCodeWriter.cpp: simple additive merges (kept entries /
  includes from both sides).

Verified by building OrcaSlicer (RelWithDebInfo) after a full deps
rebuild (Eigen v5.0.1, libigl v2.6.0 are now managed deps) and slicing
a scaled Benchy on the NORMALIZER belt-printer profile without OOM.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 21:53:24 -05:00
c4c133475f Add Repetier Gcode Flavor as option (#13126)
* 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>
2026-05-10 21:27:09 +08:00
RF47 8fa6a4602b fix profile indentation 2026-05-09 19:51:18 -03:00
SoftFever 75cc0de071 Merge branch 'main' into belt/baseChanges 2026-04-17 15:44:03 +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
harrierpigeon 0703728e56 add global mesh transform option 2026-04-10 11:39:08 -05:00
SoftFever 1e9ee0c120 add a generic belt printer 2026-04-09 23:07:08 -05: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 0f92dec77d update profile version 2026-03-06 11:44:20 +08:00
SoftFever 7cabde6ca6 update profile version 2026-03-01 00:41:54 +08:00
SoftFever 06cee7ffe7 bump profile version to "02.03.02.40" (#12309) 2026-02-15 14:24:36 +08:00
SoftFever 7736b31015 update profile version 2025-09-29 22:57:27 +08:00
SoftFever 4f50fdc94e Fixed many profile issues and cleaned up some messes. (#10686) 2025-09-11 17:50:53 +08:00
SoftFever e3d55b3c5b update profiles 2025-09-10 23:21:45 +08:00
SoftFever 4ebbadb2a6 update profile version 2025-03-16 22:59:07 +08:00
SoftFever c17b52ad66 bump profile version to "02.03.00.02" 2025-03-09 15:25:44 +08:00
SoftFever 0965b92895 update profile version 2025-03-01 17:49:00 +08:00
SoftFever a49460d8d8 bump profile versions 2025-02-20 21:44:39 +08:00
SoftFever d1bc4e1e9f Allow each vendor's filament profile inherit from OrcaFilamentLibrary and many many fixes... 2025-01-22 21:40:42 +08:00
SoftFever 4b46bfcbdf update profile version 2024-10-27 23:11:44 +08:00
SoftFever 04c65b750d bump profile version 2024-09-23 21:29:19 +08:00
SoftFever a141e4fbf7 bump profile version 2024-09-08 23:12:46 +08:00
SoftFever e73638af59 add prime all used extruder logic in start g-code for tool changer.
The prime logic is mainly bollowed from Prusa XL 5T
2024-08-14 23:03:05 +08:00
SoftFever 447cc01405 preheat work - done 2024-07-21 17:58:37 +08:00
SoftFever d872c62256 Add Generic ToolChanger Printer profile 2024-07-10 21:40:11 +08:00
SoftFever e0daca73ab upgrade profiles version to 02.01.01.00 2024-06-26 21:32:45 +08:00
SoftFever ef73bafeb0 Feature/add 0.2 0.6 0.8 nozzle for my klipper machine (#5637)
* Add 0.2mm 0.6mm 0.8 mm nozzle for MyKlipper profile

* small change
2024-06-08 21:37:09 +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
SoftFever 676a190a77 update profile version 2024-03-29 18:37:40 +08:00
SoftFever f88e3f2c64 bump profile version to 2.0.1 2024-03-23 16:31:13 +08:00
SoftFever 1e08b855df Feature/home page improve (#4602)
* Add new MyRRF custom printer

* hide user panel when networking plugin is not installed/used

* Fixed a bug that promption of installing plugin notification was not displayed when trying to switch to Bambu device tab

* replay missing_connection animated image when switching to device tab
2024-03-22 19:30:13 +08:00
SoftFever 8a1313aa43 bump printer profile version to 2.0 2024-03-11 22:42:32 +08:00
SoftFever 18b52fd780 bump version profile version to "01.09.00.02" 2024-01-06 09:22:44 +08:00
SoftFever 7db0ad3112 bump profile version to 1.9.0 2023-12-24 11:41:55 +08:00
SoftFever 09c77c45da update profile version to 1.08.00.00 2023-11-16 23:02:10 +08:00