ENH: add filament id in slice info
jira:NEW Signed-off-by: xun.zhang <xun.zhang@bambulab.com> Change-Id: Ic5fe4632bca8acacc9ffd072ee2ed207c1da37aa
This commit is contained in:
parent
3006b163d0
commit
2ff0581cdd
|
@ -4800,7 +4800,7 @@ int CLI::run(int argc, char **argv)
|
||||||
// get type and color for platedata
|
// get type and color for platedata
|
||||||
auto* filament_types = dynamic_cast<const ConfigOptionStrings*>(m_print_config.option("filament_type"));
|
auto* filament_types = dynamic_cast<const ConfigOptionStrings*>(m_print_config.option("filament_type"));
|
||||||
const ConfigOptionStrings* filament_color = dynamic_cast<const ConfigOptionStrings *>(m_print_config.option("filament_colour"));
|
const ConfigOptionStrings* filament_color = dynamic_cast<const ConfigOptionStrings *>(m_print_config.option("filament_colour"));
|
||||||
//auto* filament_id = dynamic_cast<const ConfigOptionStrings*>(m_print_config.option("filament_ids"));
|
auto* filament_id = dynamic_cast<const ConfigOptionStrings*>(m_print_config.option("filament_ids"));
|
||||||
const ConfigOptionFloats* nozzle_diameter_option = dynamic_cast<const ConfigOptionFloats *>(m_print_config.option("nozzle_diameter"));
|
const ConfigOptionFloats* nozzle_diameter_option = dynamic_cast<const ConfigOptionFloats *>(m_print_config.option("nozzle_diameter"));
|
||||||
std::string nozzle_diameter_str;
|
std::string nozzle_diameter_str;
|
||||||
if (nozzle_diameter_option)
|
if (nozzle_diameter_option)
|
||||||
|
@ -4817,10 +4817,10 @@ int CLI::run(int argc, char **argv)
|
||||||
plate_data->nozzle_diameters = nozzle_diameter_str;
|
plate_data->nozzle_diameters = nozzle_diameter_str;
|
||||||
|
|
||||||
for (auto it = plate_data->slice_filaments_info.begin(); it != plate_data->slice_filaments_info.end(); it++) {
|
for (auto it = plate_data->slice_filaments_info.begin(); it != plate_data->slice_filaments_info.end(); it++) {
|
||||||
//it->filament_id = filament_id?filament_id->get_at(it->id):"unknown";
|
|
||||||
std::string display_filament_type;
|
std::string display_filament_type;
|
||||||
it->type = m_print_config.get_filament_type(display_filament_type, it->id);
|
it->type = m_print_config.get_filament_type(display_filament_type, it->id);
|
||||||
it->color = filament_color ? filament_color->get_at(it->id) : "#FFFFFF";
|
it->color = filament_color ? filament_color->get_at(it->id) : "#FFFFFF";
|
||||||
|
it->filament_id = filament_id?filament_id->get_at(it->id):"";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!plate_data->plate_thumbnail.is_valid()) {
|
if (!plate_data->plate_thumbnail.is_valid()) {
|
||||||
|
|
|
@ -200,6 +200,7 @@ static constexpr const char* FILAMENT_TYPE_TAG = "type";
|
||||||
static constexpr const char *FILAMENT_COLOR_TAG = "color";
|
static constexpr const char *FILAMENT_COLOR_TAG = "color";
|
||||||
static constexpr const char *FILAMENT_USED_M_TAG = "used_m";
|
static constexpr const char *FILAMENT_USED_M_TAG = "used_m";
|
||||||
static constexpr const char *FILAMENT_USED_G_TAG = "used_g";
|
static constexpr const char *FILAMENT_USED_G_TAG = "used_g";
|
||||||
|
static constexpr const char *FILAMENT_TRAY_INFO_ID_TAG = "tray_info_idx";
|
||||||
|
|
||||||
|
|
||||||
static constexpr const char* CONFIG_TAG = "config";
|
static constexpr const char* CONFIG_TAG = "config";
|
||||||
|
@ -4030,13 +4031,14 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
|
||||||
std::string color = bbs_get_attribute_value_string(attributes, num_attributes, FILAMENT_COLOR_TAG);
|
std::string color = bbs_get_attribute_value_string(attributes, num_attributes, FILAMENT_COLOR_TAG);
|
||||||
std::string used_m = bbs_get_attribute_value_string(attributes, num_attributes, FILAMENT_USED_M_TAG);
|
std::string used_m = bbs_get_attribute_value_string(attributes, num_attributes, FILAMENT_USED_M_TAG);
|
||||||
std::string used_g = bbs_get_attribute_value_string(attributes, num_attributes, FILAMENT_USED_G_TAG);
|
std::string used_g = bbs_get_attribute_value_string(attributes, num_attributes, FILAMENT_USED_G_TAG);
|
||||||
|
std::string filament_id = bbs_get_attribute_value_string(attributes, num_attributes, FILAMENT_TRAY_INFO_ID_TAG);
|
||||||
FilamentInfo filament_info;
|
FilamentInfo filament_info;
|
||||||
filament_info.id = atoi(id.c_str()) - 1;
|
filament_info.id = atoi(id.c_str()) - 1;
|
||||||
filament_info.type = type;
|
filament_info.type = type;
|
||||||
filament_info.color = color;
|
filament_info.color = color;
|
||||||
filament_info.used_m = atof(used_m.c_str());
|
filament_info.used_m = atof(used_m.c_str());
|
||||||
filament_info.used_g = atof(used_g.c_str());
|
filament_info.used_g = atof(used_g.c_str());
|
||||||
|
filament_info.filament_id = filament_id;
|
||||||
m_curr_plater->slice_filaments_info.push_back(filament_info);
|
m_curr_plater->slice_filaments_info.push_back(filament_info);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -7471,6 +7473,7 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
|
||||||
for (auto it = plate_data->slice_filaments_info.begin(); it != plate_data->slice_filaments_info.end(); it++)
|
for (auto it = plate_data->slice_filaments_info.begin(); it != plate_data->slice_filaments_info.end(); it++)
|
||||||
{
|
{
|
||||||
stream << " <" << FILAMENT_TAG << " " << FILAMENT_ID_TAG << "=\"" << std::to_string(it->id + 1) << "\" "
|
stream << " <" << FILAMENT_TAG << " " << FILAMENT_ID_TAG << "=\"" << std::to_string(it->id + 1) << "\" "
|
||||||
|
<< FILAMENT_TRAY_INFO_ID_TAG <<"=\""<< it->filament_id <<"\" "
|
||||||
<< FILAMENT_TYPE_TAG << "=\"" << it->type << "\" "
|
<< FILAMENT_TYPE_TAG << "=\"" << it->type << "\" "
|
||||||
<< FILAMENT_COLOR_TAG << "=\"" << it->color << "\" "
|
<< FILAMENT_COLOR_TAG << "=\"" << it->color << "\" "
|
||||||
<< FILAMENT_USED_M_TAG << "=\"" << it->used_m << "\" "
|
<< FILAMENT_USED_M_TAG << "=\"" << it->used_m << "\" "
|
||||||
|
|
|
@ -11563,6 +11563,7 @@ int Plater::export_3mf(const boost::filesystem::path& output_path, SaveStrategy
|
||||||
// get type and color for platedata
|
// get type and color for platedata
|
||||||
auto* filament_color = dynamic_cast<const ConfigOptionStrings*>(cfg.option("filament_colour"));
|
auto* filament_color = dynamic_cast<const ConfigOptionStrings*>(cfg.option("filament_colour"));
|
||||||
auto* nozzle_diameter_option = dynamic_cast<const ConfigOptionFloats*>(cfg.option("nozzle_diameter"));
|
auto* nozzle_diameter_option = dynamic_cast<const ConfigOptionFloats*>(cfg.option("nozzle_diameter"));
|
||||||
|
auto* filament_id_opt = dynamic_cast<const ConfigOptionStrings*>(cfg.option("filament_ids"));
|
||||||
std::string nozzle_diameter_str;
|
std::string nozzle_diameter_str;
|
||||||
if (nozzle_diameter_option)
|
if (nozzle_diameter_option)
|
||||||
nozzle_diameter_str = nozzle_diameter_option->serialize();
|
nozzle_diameter_str = nozzle_diameter_option->serialize();
|
||||||
|
@ -11576,6 +11577,7 @@ int Plater::export_3mf(const boost::filesystem::path& output_path, SaveStrategy
|
||||||
for (auto it = plate_data->slice_filaments_info.begin(); it != plate_data->slice_filaments_info.end(); it++) {
|
for (auto it = plate_data->slice_filaments_info.begin(); it != plate_data->slice_filaments_info.end(); it++) {
|
||||||
std::string display_filament_type;
|
std::string display_filament_type;
|
||||||
it->type = cfg.get_filament_type(display_filament_type, it->id);
|
it->type = cfg.get_filament_type(display_filament_type, it->id);
|
||||||
|
it->filament_id = filament_id_opt ? filament_id_opt->get_at(it->id) : "";
|
||||||
it->color = filament_color ? filament_color->get_at(it->id) : "#FFFFFF";
|
it->color = filament_color ? filament_color->get_at(it->id) : "#FFFFFF";
|
||||||
// save filament info used in curr plate
|
// save filament info used in curr plate
|
||||||
int index = p->partplate_list.get_curr_plate_index();
|
int index = p->partplate_list.get_curr_plate_index();
|
||||||
|
|
|
@ -1069,7 +1069,7 @@ bool CalibUtils::process_and_store_3mf(Model *model, const DynamicPrintConfig &f
|
||||||
}
|
}
|
||||||
|
|
||||||
// apply the new print config
|
// apply the new print config
|
||||||
DynamicPrintConfig new_print_config = std::move(full_config);
|
DynamicPrintConfig new_print_config = full_config;
|
||||||
print->apply(*model, new_print_config);
|
print->apply(*model, new_print_config);
|
||||||
|
|
||||||
Print *fff_print = dynamic_cast<Print *>(print);
|
Print *fff_print = dynamic_cast<Print *>(print);
|
||||||
|
|
Loading…
Reference in New Issue