fix(cli): surgical port of assemble-list crash + CLI extruder expand (#560/#562) - #6
Merged
Merged
Conversation
STL object names were trimmed by 3 chars, leaving a trailing '.' on the assemble-list CLI path. Trim 4 chars for .stl only; leave .obj at 3 chars. construct_assemble_list entry name unchanged. Co-authored-by: aceRage <aceRage@users.noreply.github.com>
) CLI assemble-list plate loading has no GUI plater/canvas. Early-return generate_plate_name_texture when canvas is unavailable, and invalidate the name texture/raycaster from clear() and set_plate_name instead of raw reset/generate. Encapsulates Ultra's m_name_texture.reset() so GUI lazy-regenerate still works. Co-authored-by: aceRage <aceRage@users.noreply.github.com>
…pmaker#560) CLI plate loading has no plater. Keep non-GUI set_shape work (calc_bounding_boxes, height limit) and skip logo/mesh/icon/grid/ raycaster/name-texture initialization when m_plater is null. Co-authored-by: aceRage <aceRage@users.noreply.github.com>
…pmaker#562) expand_plate_extruders needs GUI preset_bundle. Skip it only on the CLI extruder path; leave GUI get_extruders helpers and dual-nozzle paths unchanged. Ultra CLI debug logs around the function retained. Co-authored-by: aceRage <aceRage@users.noreply.github.com>
aceRage
marked this pull request as ready for review
September 4, 2026 04:21
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Surgical HIGH-CONFLICT manual port of two open Snapmaker Orca PRs onto Ultra. Manual hunks only — Ultra
PartPlate.cpp/Snapmaker_Orca.cppare not wholesale overwritten.Upstream
Why this is HIGH conflict
Ultra CLI + PartPlate + Assemble Separately have drifted from Snapmaker Orca. This port adapts exact Snapmaker#560/Snapmaker#562 hunks onto the drifted Ultra sources and keeps Ultra CLI debug logs.
No AMP / profile / Stream refactors.
Changes
Part A — Snapmaker#560 (3 commits)
fix(cli): trim .stl name by 4 chars in assemble-list (#560)object_name.erase(..., -4)so names do not keep a trailing..objremains-3construct_assemble_listentry name unchangedfix(partplate): null-safe plate name texture + invalidate (#560)generate_plate_name_texture()early-returns when canvas/plater is missinginvalidate_plate_name_texture()(declared inPartPlate.hpp)clear()/set_plate_namecall invalidate instead of rawm_name_texture.reset()/ generatem_name_textureso GUI lazy-regenerate viarender_plate_name_texturekeeps working (literal Fix CLI assemble-list crash during plate loading Snapmaker/OrcaSlicer#560 invalidate would leaveget_id() != 0and stall the displayed name)fix(partplate): skip GUI set_shape work when m_plater == nullptr (#560)if (m_plater != nullptr)set_shapework outside the wrap (calc_bounding_boxes, height limit)Part B — Snapmaker#562 (1 commit)
fix(cli): skip expand_plate_extruders in get_extruders_under_cli (#562)expand_plate_extruders()only after unique-sort inget_extruders_under_clipreset_bundleget_extrudershelpers / dual-nozzle expand paths unchangedFiles
src/Snapmaker_Orca.cpp— one-line STL trim inconstruct_assemble_listsrc/slic3r/GUI/PartPlate.cpp+.hppScreenshots/Recordings/Graphs
N/A — CLI crash / null-safety; no UI layout change intended. GUI plate-name invalidate still lazy-regenerates on next render.
Tests
Cloud CLI smoke limits: this environment cannot run Snapmaker Orca CLI assemble-list or plate-load smoke (no built slicer binary, no printer/assemble fixtures). Verification here is surgical-diff review + static consistency checks:
.stlonly;.objstill-3; function name unchangedexpand_plate_extrudersstill called from GUI helpers (get_extruders,get_extruders_without_support); skipped only inget_extruders_under_cliset_shapestill runscalc_bounding_boxes/calc_height_limitwithout a platerBOOST_LOG_TRIVIALdebug lines aroundget_extruders_under_cliretainedm_name_texture.reset()inside invalidate is required to avoid a GUI name-stale regressionPre-existing (out of scope):
estimate_wipe_tower_size()can still fall back to GUIget_extruders()in CLI ifplate_extruder_size == 0. Not part of Snapmaker#560/Snapmaker#562.Manual follow-up on a full desktop build (same as upstream Snapmaker#560/Snapmaker#562 validation):
--load-assemble-listsingle-object control: no crash, G-code export