mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-07-28 23:32:05 +08:00
CLI: Printers with no vendor information are added for "--query-printer-profile"
This commit is contained in:
parent
7553d26b3c
commit
1afb514fa1
@ -179,16 +179,17 @@ static void get_printer_profiles_node(pt::ptree& printer_profiles_node,
|
|||||||
user_printer_profiles_node.clear();
|
user_printer_profiles_node.clear();
|
||||||
|
|
||||||
for (const Preset& printer_preset : printer_presets) {
|
for (const Preset& printer_preset : printer_presets) {
|
||||||
|
if (!printer_preset.is_visible)
|
||||||
|
continue;
|
||||||
int extruders_cnt = printer_preset.printer_technology() == ptSLA ? 0 :
|
int extruders_cnt = printer_preset.printer_technology() == ptSLA ? 0 :
|
||||||
printer_preset.config.option<ConfigOptionFloats>("nozzle_diameter")->values.size();
|
printer_preset.config.option<ConfigOptionFloats>("nozzle_diameter")->values.size();
|
||||||
|
|
||||||
if (printer_preset.is_user()) {
|
if (printer_preset.is_user()) {
|
||||||
const Preset* parent_preset = printer_presets.get_preset_parent(printer_preset);
|
const Preset* parent_preset = printer_presets.get_preset_parent(printer_preset);
|
||||||
if (parent_preset && printer_preset.is_visible && is_compatible_preset(*parent_preset, attr))
|
if (parent_preset && is_compatible_preset(*parent_preset, attr))
|
||||||
add_profile_node(user_printer_profiles_node, printer_preset.name, extruders_cnt);
|
add_profile_node(user_printer_profiles_node, printer_preset.name, extruders_cnt);
|
||||||
}
|
}
|
||||||
else if (printer_preset.is_visible && is_compatible_preset(printer_preset, attr))
|
else if (is_compatible_preset(printer_preset, attr))
|
||||||
add_profile_node(printer_profiles_node, printer_preset.name, extruders_cnt);
|
add_profile_node(printer_profiles_node, printer_preset.name, extruders_cnt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -255,6 +256,38 @@ static void add_printer_models(pt::ptree& vendor_node,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void add_undef_printer_models(pt::ptree& vendor_node,
|
||||||
|
PrinterTechnology printer_technology,
|
||||||
|
const PrinterPresetCollection& printer_presets)
|
||||||
|
{
|
||||||
|
for (auto pt : { ptFFF, ptSLA }) {
|
||||||
|
if (printer_technology != ptUnknown && printer_technology != pt)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
pt::ptree printer_profiles_node;
|
||||||
|
for (const Preset& preset : printer_presets) {
|
||||||
|
if (!preset.is_visible || preset.printer_technology() != pt ||
|
||||||
|
preset.vendor || printer_presets.get_preset_parent(preset))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
int extruders_cnt = preset.printer_technology() == ptSLA ? 0 :
|
||||||
|
preset.config.option<ConfigOptionFloats>("nozzle_diameter")->values.size();
|
||||||
|
add_profile_node(printer_profiles_node, preset.name, extruders_cnt);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!printer_profiles_node.empty()) {
|
||||||
|
pt::ptree data_node;
|
||||||
|
data_node.put("id", "");
|
||||||
|
data_node.put("technology", pt == ptFFF ? "FFF" : "SLA");
|
||||||
|
data_node.add_child("printer_profiles", printer_profiles_node);
|
||||||
|
data_node.put("vendor_name", "");
|
||||||
|
data_node.put("vendor_id", "");
|
||||||
|
|
||||||
|
vendor_node.push_back(std::make_pair("", data_node));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
std::string get_json_printer_models(PrinterTechnology printer_technology)
|
std::string get_json_printer_models(PrinterTechnology printer_technology)
|
||||||
{
|
{
|
||||||
PresetBundle preset_bundle;
|
PresetBundle preset_bundle;
|
||||||
@ -267,6 +300,9 @@ std::string get_json_printer_models(PrinterTechnology printer_technology)
|
|||||||
for (const auto& [vendor_id, vendor] : vendors_map)
|
for (const auto& [vendor_id, vendor] : vendors_map)
|
||||||
add_printer_models(vendor_node, &vendor, printer_technology, preset_bundle.printers);
|
add_printer_models(vendor_node, &vendor, printer_technology, preset_bundle.printers);
|
||||||
|
|
||||||
|
// add printers with no vendor information
|
||||||
|
add_undef_printer_models(vendor_node, printer_technology, preset_bundle.printers);
|
||||||
|
|
||||||
pt::ptree root;
|
pt::ptree root;
|
||||||
root.add_child("printer_models", vendor_node);
|
root.add_child("printer_models", vendor_node);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user