ENH: Pass ams information for slicing

jira: none
Change-Id: I3fe12189b6e8246fd553dcd8659bf7f98e622767
(cherry picked from commit b620a4122e2371d8311a307fa1db377e5a155222)
This commit is contained in:
zhimin.zeng
2024-09-06 17:42:38 +08:00
committed by Noisyfox
parent b9e1193ba7
commit 4e92c766ed
4 changed files with 29 additions and 3 deletions

View File

@@ -1997,6 +1997,23 @@ void PresetBundle::set_calibrate_printer(std::string name)
}
}
std::vector<std::vector<DynamicPrintConfig>> PresetBundle::get_extruder_filament_info() const
{
std::vector<std::vector<DynamicPrintConfig>> filament_infos;
int extruder_nums = get_printer_extruder_count();
if (extruder_nums > 1) {
filament_infos.resize(extruder_nums, std::vector<DynamicPrintConfig>());
for (auto ams_item : filament_ams_list) {
if (ams_item.first & 0x10000) { // right
filament_infos[1].push_back(ams_item.second);
} else { // left
filament_infos[0].push_back(ams_item.second);
}
}
}
return filament_infos;
}
std::set<std::string> PresetBundle::get_printer_names_by_printer_type_and_nozzle(const std::string &printer_type, std::string nozzle_diameter_str)
{
std::set<std::string> printer_names;
@@ -2116,9 +2133,9 @@ bool PresetBundle::is_the_only_edited_filament(unsigned int filament_index)
return true;
}
int PresetBundle::get_printer_extruder_count()
int PresetBundle::get_printer_extruder_count() const
{
Preset& printer_preset = this->printers.get_edited_preset();
const Preset& printer_preset = this->printers.get_edited_preset();
int count = printer_preset.config.option<ConfigOptionFloats>("nozzle_diameter")->values.size();