mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-11 01:41:03 +00:00
Describe the estimate's actual blind spots in the tower comments
The estimate no longer reports a tower for a single filament whose flush matrix purges, so the comments that justify calling prime_tower_is_printed() instead of reading a depth now cite what still holds: it reads neither enable_prime_tower nor print_sequence. GCodeViewer's comments name render_scene(), the function that replaced the render() they still pointed at, and the pass contract mentions the toolhead boxes it draws. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
2d80c6a24e
commit
1f1d13e3d9
@@ -45,8 +45,8 @@ WipeTowerFootprint estimate_wipe_tower_footprint(const ConfigBase
|
||||
double max_object_height);
|
||||
|
||||
// Whether a prime tower is PRINTED for a plate. The footprint estimate above answers how big a
|
||||
// tower is and reports one for a single filament whenever the flush matrix purges, so it cannot
|
||||
// answer this; the authority is DynamicPrintConfig::normalize_fdm_2(), which clears
|
||||
// tower is and never reads enable_prime_tower or print_sequence, so it reports a size for a plate
|
||||
// that prints no tower at all; the authority is DynamicPrintConfig::normalize_fdm_2(), which clears
|
||||
// enable_prime_tower before the plate is sliced. This mirrors that rule so pre-slice consumers can
|
||||
// ask it without mutating a config, and a test pins the two together.
|
||||
//
|
||||
|
||||
@@ -1633,7 +1633,7 @@ void GCodeViewer::reset()
|
||||
// IDEX/IQEX: resolve where every secondary carriage marker sits, relative to the primary,
|
||||
// for one (printer preset, active mode, plate bed) triple. This parses the mode string
|
||||
// several times over and rebuilds the zone grid, and every one of its inputs is preset or
|
||||
// plate state, so render() runs it only when GCodeViewer::ImexMarkerKey changes and replays
|
||||
// plate state, so render_scene() runs it only when GCodeViewer::ImexMarkerKey changes and replays
|
||||
// the returned plan on all the frames in between.
|
||||
//
|
||||
// `mode` is already resolved (the plate's mode beats the process preset). An empty
|
||||
|
||||
@@ -214,7 +214,7 @@ private:
|
||||
bool m_fold = {false};
|
||||
std::string m_marker_filename; // cached for lazy secondary marker init
|
||||
|
||||
// IDEX/IQEX: everything render() needs to place the secondary carriage markers and the
|
||||
// IDEX/IQEX: everything render_scene() needs to place the secondary carriage markers and the
|
||||
// toolhead footprint boxes, resolved from the printer preset, the active mode and the
|
||||
// plate bed. Resolving it walks the mode string through compute_imex_zone_layout()
|
||||
// (several string parses plus a zone-grid rebuild), and none of its inputs change
|
||||
@@ -365,7 +365,7 @@ public:
|
||||
//BBS: add all plates filament statistics
|
||||
void render_all_plates_stats(const std::vector<const GCodeProcessorResult*>& gcode_result_list, bool show = true) const;
|
||||
//BBS: GUI refactor: add canvas width and height
|
||||
// Shells, toolpaths and the sequential marker, drawn in 3D.
|
||||
// Shells, toolpaths, the sequential markers and the IDEX/IQEX toolhead boxes, drawn in 3D.
|
||||
void render_scene(int canvas_width, int canvas_height);
|
||||
// Legend, sliders, the marker's position window and the G-code window, all ImGui.
|
||||
void render_overlay(int canvas_width, int canvas_height, int right_margin);
|
||||
|
||||
@@ -1122,9 +1122,9 @@ Polygon PartPlate::imex_wipe_tower_hull() const
|
||||
// Whether a tower is PRINTED is normalize_fdm_2's rule, shared with the slicer through
|
||||
// prime_tower_is_printed() rather than re-derived here - re-deriving it is what let this
|
||||
// validate a tower the slicer had already cancelled. Do not substitute the footprint
|
||||
// estimate: it reports a tower for a single filament whenever the flush matrix purges
|
||||
// (SEMM + purge_in_prime_tower, the Klipper default), which hard-blocks a plate with
|
||||
// nothing drawn on screen to move.
|
||||
// estimate: it never reads enable_prime_tower or print_sequence, so it still sizes a tower
|
||||
// for a plate that switched the tower off or prints by object, which would hard-block a
|
||||
// plate with nothing drawn on screen to move.
|
||||
//
|
||||
// Counts are the ones normalize_fdm_2 is handed: filament slots as authored, so a mixed
|
||||
// slot counts once, and distinct objects rather than instances. filament_is_mixed is a
|
||||
|
||||
Reference in New Issue
Block a user