diff --git a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Plus 0.4 nozzle.json b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Plus 0.4 nozzle.json index ca2afafa2..cd1de6b7e 100644 --- a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Plus 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Plus 0.4 nozzle.json @@ -156,7 +156,7 @@ "seam_slope_start_height": "0", "seam_slope_steps": "10", "seam_slope_type": "none", - "single_extruder_multi_material_priming": "1", + "single_extruder_multi_material_priming": "0", "skirt_distance": "2", "skirt_height": "1", "skirt_loops": "0", diff --git a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Pro 0.4 nozzle.json index 63c52ab26..bab2091fd 100644 --- a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X3Pro 0.4 nozzle.json @@ -156,7 +156,7 @@ "seam_slope_start_height": "0", "seam_slope_steps": "10", "seam_slope_type": "none", - "single_extruder_multi_material_priming": "1", + "single_extruder_multi_material_priming": "0", "skirt_distance": "2", "skirt_height": "1", "skirt_loops": "0", diff --git a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Plus 0.4 nozzle.json b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Plus 0.4 nozzle.json index 6541d48fb..e72063a41 100644 --- a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Plus 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Plus 0.4 nozzle.json @@ -156,7 +156,7 @@ "seam_slope_start_height": "0", "seam_slope_steps": "10", "seam_slope_type": "none", - "single_extruder_multi_material_priming": "1", + "single_extruder_multi_material_priming": "0", "skirt_distance": "2", "skirt_height": "1", "skirt_loops": "0", diff --git a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Pro 0.4 nozzle.json b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Pro 0.4 nozzle.json index 3f2e3ca40..59b4db5f6 100644 --- a/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/process/0.20mm Standard @Artillery X4Pro 0.4 nozzle.json @@ -156,7 +156,7 @@ "seam_slope_start_height": "0", "seam_slope_steps": "10", "seam_slope_type": "none", - "single_extruder_multi_material_priming": "1", + "single_extruder_multi_material_priming": "0", "skirt_distance": "2", "skirt_height": "1", "skirt_loops": "0", diff --git a/resources/profiles/Comgrow/process/fdm_process_comgrow_common.json b/resources/profiles/Comgrow/process/fdm_process_comgrow_common.json index 8f144ff59..194e40a19 100644 --- a/resources/profiles/Comgrow/process/fdm_process_comgrow_common.json +++ b/resources/profiles/Comgrow/process/fdm_process_comgrow_common.json @@ -128,7 +128,7 @@ "role_based_wipe_speed": "1", "seam_gap": "5%", "seam_position": "aligned", - "single_extruder_multi_material_priming": "1", + "single_extruder_multi_material_priming": "0", "skirt_distance": "3", "skirt_height": "2", "skirt_loops": "0", diff --git a/resources/profiles/Flashforge/process/0.20mm Standard @Flashforge G3U 0.4 Nozzle.json b/resources/profiles/Flashforge/process/0.20mm Standard @Flashforge G3U 0.4 Nozzle.json index 6995772a4..15f4fa3ad 100644 --- a/resources/profiles/Flashforge/process/0.20mm Standard @Flashforge G3U 0.4 Nozzle.json +++ b/resources/profiles/Flashforge/process/0.20mm Standard @Flashforge G3U 0.4 Nozzle.json @@ -136,7 +136,7 @@ "role_based_wipe_speed": "1", "seam_gap": "10%", "seam_position": "aligned", - "single_extruder_multi_material_priming": "1", + "single_extruder_multi_material_priming": "0", "skirt_distance": "2", "skirt_height": "1", "skirt_loops": "2", diff --git a/resources/profiles/FlyingBear/process/S1/fdm_process_common_S1.json b/resources/profiles/FlyingBear/process/S1/fdm_process_common_S1.json index 43964dace..e11619146 100644 --- a/resources/profiles/FlyingBear/process/S1/fdm_process_common_S1.json +++ b/resources/profiles/FlyingBear/process/S1/fdm_process_common_S1.json @@ -115,7 +115,7 @@ "role_based_wipe_speed": "1", "seam_gap": "10%", "seam_position": "aligned", - "single_extruder_multi_material_priming": "1", + "single_extruder_multi_material_priming": "0", "skirt_distance": "2", "skirt_height": "1", "skirt_loops": "0", diff --git a/resources/profiles/FlyingBear/process/fdm_process_common.json b/resources/profiles/FlyingBear/process/fdm_process_common.json index 6f9e1e1fc..8e20a992b 100644 --- a/resources/profiles/FlyingBear/process/fdm_process_common.json +++ b/resources/profiles/FlyingBear/process/fdm_process_common.json @@ -115,7 +115,7 @@ "role_based_wipe_speed": "1", "seam_gap": "10%", "seam_position": "aligned", - "single_extruder_multi_material_priming": "1", + "single_extruder_multi_material_priming": "0", "skirt_distance": "2", "skirt_height": "1", "skirt_loops": "0", diff --git a/resources/profiles/Ginger Additive/process/fdm_process_common.json b/resources/profiles/Ginger Additive/process/fdm_process_common.json index 11b16c139..81075c236 100644 --- a/resources/profiles/Ginger Additive/process/fdm_process_common.json +++ b/resources/profiles/Ginger Additive/process/fdm_process_common.json @@ -154,7 +154,7 @@ "seam_slope_start_height": "0", "seam_slope_steps": "10", "seam_slope_type": "external", - "single_extruder_multi_material_priming": "1", + "single_extruder_multi_material_priming": "0", "skirt_distance": "2", "skirt_height": "1", "skirt_loops": "1", diff --git a/resources/profiles/InfiMech/process/HSN/fdm_process_common_HSN.json b/resources/profiles/InfiMech/process/HSN/fdm_process_common_HSN.json index fc457c76d..2afeaf2cb 100644 --- a/resources/profiles/InfiMech/process/HSN/fdm_process_common_HSN.json +++ b/resources/profiles/InfiMech/process/HSN/fdm_process_common_HSN.json @@ -114,7 +114,7 @@ "role_based_wipe_speed": "1", "seam_gap": "10%", "seam_position": "aligned", - "single_extruder_multi_material_priming": "1", + "single_extruder_multi_material_priming": "0", "skirt_distance": "2", "skirt_height": "1", "skirt_loops": "0", diff --git a/resources/profiles/InfiMech/process/fdm_process_common.json b/resources/profiles/InfiMech/process/fdm_process_common.json index cb944ca97..0bb51b5c6 100644 --- a/resources/profiles/InfiMech/process/fdm_process_common.json +++ b/resources/profiles/InfiMech/process/fdm_process_common.json @@ -114,7 +114,7 @@ "role_based_wipe_speed": "1", "seam_gap": "10%", "seam_position": "aligned", - "single_extruder_multi_material_priming": "1", + "single_extruder_multi_material_priming": "0", "skirt_distance": "2", "skirt_height": "1", "skirt_loops": "0", diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index f5c27e949..535c30438 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -2147,7 +2147,7 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato throw Slic3r::SlicingError(_(L("No object can be printed. Maybe too small"))); has_wipe_tower = print.has_wipe_tower() && tool_ordering.has_wipe_tower(); // Orca: support all extruder priming - initial_extruder_id = (has_wipe_tower && !print.config().single_extruder_multi_material_priming) ? + initial_extruder_id = (!is_bbl_printers && has_wipe_tower && !print.config().single_extruder_multi_material_priming) ? // The priming towers will be skipped. tool_ordering.all_extruders().back() : // Don't skip the priming towers. @@ -6157,13 +6157,7 @@ std::string GCode::set_extruder(unsigned int extruder_id, double print_z, bool b std::string toolchange_gcode_parsed; //Orca: Ignore change_filament_gcode if is the first call for a tool change and manual_filament_change is enabled if (!change_filament_gcode.empty() && !(m_config.manual_filament_change.value && m_toolchange_count == 1)) { - dyn_config.set_key_value("previous_extruder", - new ConfigOptionInt((int) (m_writer.extruder() != nullptr ? m_writer.extruder()->id() : -1))); - dyn_config.set_key_value("next_extruder", new ConfigOptionInt((int) extruder_id)); - dyn_config.set_key_value("layer_num", new ConfigOptionInt(m_layer_index)); - dyn_config.set_key_value("layer_z", new ConfigOptionFloat(print_z)); dyn_config.set_key_value("toolchange_z", new ConfigOptionFloat(print_z)); - dyn_config.set_key_value("max_layer_z", new ConfigOptionFloat(m_max_layer_z)); toolchange_gcode_parsed = placeholder_parser_process("change_filament_gcode", change_filament_gcode, extruder_id, &dyn_config); check_add_eol(toolchange_gcode_parsed); diff --git a/src/libslic3r/GCode/ToolOrdering.cpp b/src/libslic3r/GCode/ToolOrdering.cpp index e5c326008..7f270b69c 100644 --- a/src/libslic3r/GCode/ToolOrdering.cpp +++ b/src/libslic3r/GCode/ToolOrdering.cpp @@ -875,7 +875,7 @@ void ToolOrdering::reorder_extruders_for_minimum_flush_volume() return false; }; - std::optionalcurrent_extruder_id; + std::optionalcurrent_extruder_id(-1); for (int i = 0; i < m_layer_tools.size(); ++i) { LayerTools& lt = m_layer_tools[i]; if (lt.extruders.empty()) diff --git a/src/libslic3r/PlaceholderParser.cpp b/src/libslic3r/PlaceholderParser.cpp index c6e4bc525..04935ae48 100644 --- a/src/libslic3r/PlaceholderParser.cpp +++ b/src/libslic3r/PlaceholderParser.cpp @@ -1063,7 +1063,7 @@ namespace client case coPercents: output.set_d(static_cast(opt.opt)->values[idx]); break; case coPoints: output.set_s(to_string(static_cast(opt.opt)->values[idx])); break; case coBools: output.set_b(static_cast(opt.opt)->values[idx] != 0); break; - //case coEnums: output.set_s(opt.opt->vserialize()[idx]); break; + case coEnums: output.set_i(static_cast(opt.opt)->values[idx]); break; default: ctx->throw_exception("Unsupported vector variable type", opt.it_range); } diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 8292e576e..b7b99f7a5 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -2581,6 +2581,7 @@ void Print::_make_wipe_tower() for (unsigned int i = 0; i(flush_matrix.begin()+i*number_of_extruders, flush_matrix.begin()+(i+1)*number_of_extruders)); + const auto bUseWipeTower2 = is_BBL_printer() ? false : true; // Orca: itertate over wipe_volumes and change the non-zero values to the prime_volume if (!m_config.purge_in_prime_tower && !is_BBL_printer()) { for (unsigned int i = 0; i < number_of_extruders; ++i) { @@ -2593,7 +2594,7 @@ void Print::_make_wipe_tower() } // Let the ToolOrdering class know there will be initial priming extrusions at the start of the print. - m_wipe_tower_data.tool_ordering = ToolOrdering(*this, (unsigned int)-1, true); + m_wipe_tower_data.tool_ordering = ToolOrdering(*this, (unsigned int) -1, bUseWipeTower2 ? true : false); if (!m_wipe_tower_data.tool_ordering.has_wipe_tower()) // Don't generate any wipe tower. @@ -2636,7 +2637,7 @@ void Print::_make_wipe_tower() } this->throw_if_canceled(); - if (is_BBL_printer()) { + if (!bUseWipeTower2) { // in BBL machine, wipe tower is only use to prime extruder. So just use a global wipe volume. WipeTower wipe_tower(m_config, m_plate_index, m_origin, m_config.prime_volume, m_wipe_tower_data.tool_ordering.first_extruder(), m_wipe_tower_data.tool_ordering.empty() ? 0.f : m_wipe_tower_data.tool_ordering.back().print_z); diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 2b320b331..7eea47014 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -4156,7 +4156,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Prime all printing extruders"); def->tooltip = L("If enabled, all printing extruders will be primed at the front edge of the print bed at the start of the print."); def->mode = comAdvanced; - def->set_default_value(new ConfigOptionBool(true)); + def->set_default_value(new ConfigOptionBool(false)); def = this->add("slice_closing_radius", coFloat); def->label = L("Slice gap closing radius"); diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index a378f6397..e6d841d10 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -9186,8 +9186,6 @@ void GLCanvas3D::_load_wipe_tower_toolpaths(const BuildVolume& build_volume, con ctxt.print = print; ctxt.tool_colors = tool_colors.empty() ? nullptr : &tool_colors; - //BBS: has no single_extruder_multi_material_priming - //if (print->wipe_tower_data().priming && print->config().single_extruder_multi_material_priming) if (print->wipe_tower_data().priming) for (int i=0; i<(int)print->wipe_tower_data().priming.get()->size(); ++i) ctxt.priming.emplace_back(print->wipe_tower_data().priming.get()->at(i));