Fix misc bugs

This commit is contained in:
SoftFever 2024-07-23 00:12:54 +08:00
parent b4cc526ae4
commit c36d4ad7c9
17 changed files with 18 additions and 25 deletions

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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);

View file

@ -875,7 +875,7 @@ void ToolOrdering::reorder_extruders_for_minimum_flush_volume()
return false;
};
std::optional<unsigned int>current_extruder_id;
std::optional<unsigned int>current_extruder_id(-1);
for (int i = 0; i < m_layer_tools.size(); ++i) {
LayerTools& lt = m_layer_tools[i];
if (lt.extruders.empty())

View file

@ -1063,7 +1063,7 @@ namespace client
case coPercents: output.set_d(static_cast<const ConfigOptionPercents*>(opt.opt)->values[idx]); break;
case coPoints: output.set_s(to_string(static_cast<const ConfigOptionPoints*>(opt.opt)->values[idx])); break;
case coBools: output.set_b(static_cast<const ConfigOptionBools*>(opt.opt)->values[idx] != 0); break;
//case coEnums: output.set_s(opt.opt->vserialize()[idx]); break;
case coEnums: output.set_i(static_cast<const ConfigOptionInts *>(opt.opt)->values[idx]); break;
default:
ctx->throw_exception("Unsupported vector variable type", opt.it_range);
}

View file

@ -2581,6 +2581,7 @@ void Print::_make_wipe_tower()
for (unsigned int i = 0; i<number_of_extruders; ++i)
wipe_volumes.push_back(std::vector<float>(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);

View file

@ -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");

View file

@ -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));