Skip to content

Log BambuStudio 3MF substitutions instead of popping dialogs - #404

Merged
aceRage merged 9 commits into
mainfrom
cursor/orca-16153-bambu-project-dialogs-7650
Oct 12, 2026
Merged

aceRage merged 9 commits into
mainfrom
cursor/orca-16153-bambu-project-dialogs-7650

Conversation

@aceRage

@aceRage aceRage commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner

Description

Port Orca OrcaSlicer#16153 the Edge way: genuine BambuStudio projects log setting substitutions instead of popping show_substitutions_info. Gated on the BambuStudio generator stamp, not From_BBS && file_version > 2.3.2.

Upstream: merged 9a9285a8, Oct 8 10:33 PM CT — OrcaSlicer#16153

Edge baseline: 809c69ef6e8d4a791d42f4913c25af3ab9ddfd35 (re-checked origin/main before branching).

Why not upstream's condition (D-13a, required)

Edge's _handle_end_metadata sets m_is_bbl_3mf (→ En3mfType::From_BBS) for BambuStudio-*, and SLIC3R_APP_NAME-* (Edge's own files), and Snapmaker_Orca-*. Edge's version is 2.4.5.x > 2.3.2, so From_BBS && file_version > 2.3.2 would also silence substitution dialogs for Edge's and Snapmaker Orca's own projects.

Did not add an En3mfType value (== From_BBS checks at L12256 log / L12524 translate_old would silently change).

Ported

  • _BBS_3MF_Importer::m_is_bambu_studio_generator, set only in the BambuStudio- branch.
  • Trailing defaulted bool *is_bambu_studio = nullptr on load_bbs_3mf / load_model_from_file / Model::read_from_archive so CLI (src/Snapmaker_Orca.cpp) and existing tests keep compiling.
  • log_substitutions overloads above Plater::priv::load_files.
  • L12550 (project-embedded presets) and L12609 (config_substitutions): log if BambuStudio, else dialog.

Skipped

  • D-13b: unrecognised-keys info log (Edge has no dialog there to replace).
  • D-13c: do not silence Snapmaker Orca projects.
  • Edge's "newer 3mf version" dialog (L12440–12468) left alone.
  • L12956 show_substitutions_info is the read_from_file / STL-adjacent path, not the archive project load. Left alone.

G-code

None.

Overlaps

Screenshots/Recordings/Graphs

N/A.

Tests

  • tests/libslic3r/test_3mf.cpp: Edge-stamped file → flag false; BambuStudio-02.03.00.70 → true; Snapmaker_Orca-2.2.0 → false.

Owed:

  • Edge CI
  • MSVC Rel+Debug
  • Catch2: libslic3r_tests "[3mf][Regression]" (new generator-flag case)
  • slice_compare: N/A
  • Manual: open a real BambuStudio 2.x project → no substitution dialog, substitutions in the log. Open an Edge project with an unknown key → dialog still shows.

Fast-lane build and test (2026-10-12)

Built and tested together with the other fast-lane PRs on test/cursor-fastlane (head 558f0e3b93): origin/main 2fe16dac57 with #437, #401, #402, #398 and #404 merged. Ninja + unity + PCH build (agent_build.sh), test copy at C:\Dev\EdgeSlicerTest\fastlane.

  • libslic3r_tests: 2026 cases, 2023 pass + 3 expected failures (the standing ones, unchanged). fff_print_tests: 394 cases, all pass (47303 assertions). slic3rutils_tests: 1007 cases, all pass (12815 assertions).
  • Identity gate: 25 CLI slices (X1C and U1 cubes, Benchy, Bunny, Voron cube, OrcaCube, stringhell, KSR, tolerance test, 4-tool and 2-colour models, normal and tree supports, vase cubes, by-object, four H2D project plates, a draw-cut project) against the main install 20261011-1724-598616272d (no src/libslic3r or profile change between it and 2fe16dac57). Every G-code file differs from the baseline in exactly one line, the ; generated by ... on <date> stamp. The baseline sliced twice is identical the same way.
  • This PR: The BambuStudio generator flag is set only for a BambuStudio Application stamp passes (43 assertions).
  • Fixes made in this pass: (1) the test's stamp lambda did not capture path, so test_3mf.cpp did not compile (C3493); (2) the gate is now from_bambu_studio && file_version > Semver(2, 3, 2), as in Orca 16153 (OrcaSlicer only tagged its own 3MFs after 2.3.2, so an older BambuStudio-stamped file may be an Orca project and keeps the dialog). The Edge-specific stamp test stays, because Edge stamps its own projects From_BBS too.
  • Merged origin/main and Harden AMF metadata and 3MF cyclic component walks #398 (conflict in tests/libslic3r/test_3mf.cpp: both PRs appended a test at the same spot; both kept). Merge Harden AMF metadata and 3MF cyclic component walks #398 first; head 6665a0ea14.
  • Owner check: open a BambuStudio 3MF that used to pop the substitution dialogs; now only a log line (warning level, Loading <path>: ...) and no dialog. An Edge project with an unknown key must still show the dialog.
Open in Web Open in Cursor 

cursoragent and others added 9 commits October 9, 2026 15:03
Port Orca OrcaSlicer#16060/OrcaSlicer#16059: reject AMF metadata without a type, and bound
BBS 3MF component expansion so cyclic or huge graphs fail cleanly.
Paint-depth 3MF data is untouched.

Co-authored-by: aceRage <[email protected]>
Port Orca OrcaSlicer#16153 the Edge way: gate on the BambuStudio generator stamp,
not From_BBS. Edge stamps its own and Snapmaker Orca 3MFs as From_BBS, so
those still show the substitution dialog.

Co-authored-by: aceRage <[email protected]>
…or/orca-16153-bambu-project-dialogs-7650

Deft
…Orca 16153 does

Orca only tagged its own 3MFs after 2.3.2, so an older BambuStudio-stamped
file may be an Orca project and keeps the substitution dialog.

Deft
… the test), add the 100000 component budget boundary test

Deft
…or/orca-16153-bambu-project-dialogs-7650

Deft
@aceRage
aceRage marked this pull request as ready for review October 12, 2026 12:45
@aceRage
aceRage merged commit 8013d5b into main Oct 12, 2026
aceRage added a commit that referenced this pull request Oct 12, 2026
Brings the branch up to main 734d2ee (39 commits: #398/#401/#402/#404,
#431, #443, #445, #450, #452). No conflicts; GCode.cpp auto-merged (#431's
header_gcode_producer() in the HEADER_BLOCK is outside the fan/cooling hunks).

Deft
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants