Adding pellet printer suppor to OrcaSlicer (#4836)

* creating settings for printer and some UI changes work

* related filament diameter and pellet flow changes to each other

* UI name change to turn Filament to Material

* updated the flow coefficient to filament diameter formula

* updated the preset for the configuration wizard

* configuration changes for the final release

* config changes and preset bundle sync removed

* start gcode change for ginger machines

* added explanation of relationship between pellet_flow_coefficient and filament_diameter

* Added tooltip. Fixed Ginger machine configuration, Added docs
This commit is contained in:
analysis230 2024-06-29 20:15:06 +05:30 committed by GitHub
parent 409004d471
commit 8ccf0edbc2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
35 changed files with 1506 additions and 3 deletions

View file

@ -596,7 +596,7 @@ void ParamsPanel::set_active_tab(wxPanel* tab)
}
m_left_sizer->Layout();
if (auto dialog = dynamic_cast<wxDialog*>(GetParent())) {
wxString title = cur_tab->type() == Preset::TYPE_FILAMENT ? _L("Filament settings") : _L("Printer settings");
wxString title = cur_tab->type() == Preset::TYPE_FILAMENT ? _L("Material settings") : _L("Printer settings");
dialog->SetTitle(title);
}

View file

@ -1216,6 +1216,17 @@ void Sidebar::update_all_preset_comboboxes()
}
if (cfg.opt_bool("pellet_modded_printer")) {
p->m_staticText_filament_settings->SetLabel(_L("Pellets"));
p->m_filament_icon->SetBitmap_("pellets");
} else {
p->m_staticText_filament_settings->SetLabel(_L("Filament"));
p->m_filament_icon->SetBitmap_("filament");
}
//p->m_staticText_filament_settings->Update();
if (is_bbl_vendor || cfg.opt_bool("support_multi_bed_types")) {
m_bed_type_list->Enable();
auto str_bed_type = wxGetApp().app_config->get_printer_setting(wxGetApp().preset_bundle->printers.get_selected_preset_name(),

View file

@ -1418,6 +1418,19 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value)
}
}
if (opt_key == "pellet_flow_coefficient")
{
double double_value = Preset::convert_pellet_flow_to_filament_diameter(boost::any_cast<double>(value));
m_config->set_key_value("filament_diameter", new ConfigOptionFloats{double_value});
}
if (opt_key == "filament_diameter") {
double double_value = Preset::convert_filament_diameter_to_pellet_flow(boost::any_cast<double>(value));
m_config->set_key_value("pellet_flow_coefficient", new ConfigOptionFloats{double_value});
}
if (opt_key == "single_extruder_multi_material" || opt_key == "extruders_count" )
update_wiping_button_visibility();
@ -3204,6 +3217,7 @@ void TabFilament::build()
optgroup->append_single_option_line("required_nozzle_HRC");
optgroup->append_single_option_line("default_filament_colour");
optgroup->append_single_option_line("filament_diameter");
optgroup->append_single_option_line("pellet_flow_coefficient");
optgroup->append_single_option_line("filament_flow_ratio");
optgroup->append_single_option_line("enable_pressure_advance");
@ -3519,6 +3533,10 @@ void TabFilament::toggle_options()
toggle_line("eng_plate_temp_initial_layer", support_multi_bed_types);
toggle_line("textured_plate_temp_initial_layer", support_multi_bed_types);
bool is_pellet_printer = cfg.opt_bool("pellet_modded_printer");
toggle_line("pellet_flow_coefficient", is_pellet_printer);
toggle_line("filament_diameter", !is_pellet_printer);
}
if (m_active_page->title() == L("Setting Overrides"))
update_filament_overrides_page();
@ -3630,6 +3648,7 @@ void TabPrinter::build_fff()
optgroup->append_single_option_line(option);
// optgroup->append_single_option_line("printable_area");
optgroup->append_single_option_line("printable_height");
optgroup->append_single_option_line("pellet_modded_printer");
optgroup->append_single_option_line("support_multi_bed_types","bed-types");
optgroup->append_single_option_line("nozzle_volume");
optgroup->append_single_option_line("best_object_pos");