mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-08-07 18:17:44 +00:00
Merge branch 'main' into feat/plugin-feature
Resolve five conflicts, all of which needed both sides rather than a pick: - BackgroundSlicingProcess: ours was a pure tabs->spaces reformat of base, so keep main's per-filament volume/nozzle map read-back (its only change here). - GUI_App: main's #12506 else-if attached to an `if` this branch deleted; re-expressed onto the same-agent early-return path (the agent factory caches per id, so pointer equality is the same predicate). - MainFrame: both sides relocated Sync Presets independently; keep main's push_notification plus the branch's Plugins menu items. - Tab: the "TODO: Orca: Support hybrid" blocks were unchanged base, not a branch decision; take main's enabled Hybrid to match the already auto-merged siblings. - test_config: union of both sides' cases (6 plugin + 9 multi-nozzle).
This commit is contained in:
@@ -233,6 +233,19 @@ void BackgroundSlicingProcess::process_fff()
|
||||
if (m_current_plate->get_real_filament_map_mode(preset_bundle.project_config) < FilamentMapMode::fmmManual) {
|
||||
std::vector<int> f_maps = m_fff_print->get_filament_maps();
|
||||
m_current_plate->set_filament_maps(f_maps);
|
||||
// The engine's concrete per-filament volume assignment is merged into the print
|
||||
// config by the ToolOrdering write-back; reading it back keeps the plate config the
|
||||
// next apply overlays equal to the written-back state (no diff, no re-invalidation)
|
||||
// and persists the auto result (always concrete Std/HF, never the Hybrid seed).
|
||||
std::vector<int> f_volume_maps = m_fff_print->get_filament_volume_maps();
|
||||
m_current_plate->set_filament_volume_maps(f_volume_maps);
|
||||
}
|
||||
if (m_current_plate->get_real_filament_map_mode(preset_bundle.project_config) != FilamentMapMode::fmmNozzleManual) {
|
||||
// The engine-resolved nozzle map is read back for every non-nozzle-manual mode so the
|
||||
// plate config the next apply overlays matches the engine's written-back state
|
||||
// (otherwise the full-config diff would invalidate the g-code on every apply).
|
||||
std::vector<int> f_nozzle_maps = m_fff_print->get_filament_nozzle_maps();
|
||||
m_current_plate->set_filament_nozzle_maps(f_nozzle_maps);
|
||||
}
|
||||
wxCommandEvent evt(m_event_slicing_completed_id);
|
||||
// Post the Slicing Finished message for the G-code viewer to update.
|
||||
@@ -244,6 +257,9 @@ void BackgroundSlicingProcess::process_fff()
|
||||
m_temp_output_path = this->get_current_plate()->get_tmp_gcode_path();
|
||||
m_fff_print->export_gcode(m_temp_output_path, m_gcode_result,
|
||||
[this](const ThumbnailsParams& params) { return this->render_thumbnails(params); });
|
||||
// Orca: BBL printers post-process the g-code in place here and never re-parse it into a fresh
|
||||
// GCodeProcessorResult, so m_gcode_result->nozzle_group_result (consumed by the H2C print-dispatch
|
||||
// nozzle mapping) survives post-processing. No preservation guard is needed on this path.
|
||||
if (m_fff_print->is_BBL_printer()) {
|
||||
run_post_process_scripts(m_temp_output_path, false, "File", m_temp_output_path, m_fff_print->full_print_config());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user