Skip to content

fix(print): sequential clearance Kahn sort + above-rod Y extent (#630, #793) - #4

Merged
aceRage merged 2 commits into
mainfrom
fix/sequential-print-clearance-630-793
Sep 4, 2026
Merged

fix(print): sequential clearance Kahn sort + above-rod Y extent (#630, #793)#4
aceRage merged 2 commits into
mainfrom
fix/sequential-print-clearance-630-793

Conversation

@aceRage

@aceRage aceRage commented Sep 4, 2026

Copy link
Copy Markdown
Owner

Description

Two-commit port of sequential print-by-object clearance fixes from Snapmaker/OrcaSlicer into Ultra. Only src/libslic3r/Print.cpp is changed.

This stops false "Assembly is too tall, and collisions will be caused" errors on MakerWorld/Bambu 3MFs whose object-list order is not a valid print order, and then tightens the Y-overlap test to the geometry that can actually hit the X rod.

Commit order (A then B)

  1. Part Afix(print): sequential clearance order via Kahn sort (#630)

    • Upstream: Snapmaker/OrcaSlicer#630 (open)
    • Replaces the disabled #if 0 score-propagation heuristic / #else object_index sort in Print::sequential_print_clearance_valid with a Kahn topological sort over clearance constraints.
    • At most one instance may need the last slot (height > height_to_lid). Y-overlap plus height > height_to_rod ⇒ must print before. Ties broken by object_index.
    • If the graph is unsolvable, fall back to object-list order so real collisions still error.
    • Vertical clearance check left unchanged in this commit.
  2. Part Bfix(print): sequential clearance uses above-rod Y extent (#793)

Screenshots/Recordings/Graphs

No UI change. Validation on Ultra hardware / MakerWorld 3MFs still needed locally (see Tests). Upstream Snapmaker#630/Snapmaker#793 include before/after slice screenshots and a printed above-rod test plate.

Tests

Open in Web Open in Cursor 

cursoragent and others added 2 commits September 4, 2026 04:00
Replace object-list-order sort in sequential_print_clearance_valid
with a topological sort over height-to-lid / height-to-rod clearance
constraints. If no valid order exists, keep the original object list
so genuine collisions still report the existing error.

Co-authored-by: aceRage <aceRage@users.noreply.github.com>
Port Snapmaker#793 logical commit ebdb36d: sequential
clearance Y-overlap now uses only geometry above height-to-rod, not
the full footprint. Lid-height last-slot and horizontal toolhead
radius checks are unchanged.

Co-authored-by: aceRage <aceRage@users.noreply.github.com>
@aceRage
aceRage marked this pull request as ready for review September 4, 2026 04:02
@aceRage
aceRage merged commit bb87d22 into main Sep 4, 2026
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