ENH: save bed type in 3mf for first layer scan

Change-Id: Id3d83a58f0cca4899e3247b5854500af79cf1b34
(cherry picked from commit d192ae2d8c7d404048e980cfaa0846be48c5fbad)
This commit is contained in:
Arthur 2022-11-08 20:43:03 +08:00 committed by Lane.Wei
parent f9793be848
commit 7bdba58b98
3 changed files with 8 additions and 3 deletions

View File

@ -76,6 +76,7 @@ struct PlateBBoxData
bool is_seq_print = false;
int first_extruder = 0;
float nozzle_diameter = 0.4;
std::string bed_type;
// version 1: use view type ColorPrint (filament color)
// version 2: use view type FilamentId (filament id)
int version = 2;
@ -88,6 +89,7 @@ struct PlateBBoxData
j["first_extruder"] = first_extruder;
j["nozzle_diameter"] = nozzle_diameter;
j["version"] = version;
j["bed_type"] = bed_type;
for (const auto& bbox : bbox_objs) {
nlohmann::json j_bbox;
bbox.to_json(j_bbox);
@ -102,6 +104,7 @@ struct PlateBBoxData
j.at("first_extruder").get_to(first_extruder);
j.at("nozzle_diameter").get_to(nozzle_diameter);
j.at("version").get_to(version);
j.at("bed_type").get_to(bed_type);
for (auto& bbox_j : j.at("bbox_objects")) {
BBoxData bbox_data;
bbox_data.from_json(bbox_j);

View File

@ -192,13 +192,14 @@ static std::string bed_type_to_gcode_string(const BedType type)
type_str = "cool_plate";
break;
case btEP:
type_str = "engineering_plate";
type_str = "eng_plate";
break;
case btPEI:
type_str = "high_temp_plate";
type_str = "hot_plate";
break;
case btPTE:
type_str = "frosted_plate";
type_str = "textured_plate";
break;
default:
type_str = "unknown";
break;

View File

@ -6056,6 +6056,7 @@ PlateBBoxData Plater::priv::generate_first_layer_bbox()
auto print = this->background_process.m_fff_print;
bboxdata.is_seq_print = (print->config().print_sequence == PrintSequence::ByObject);
bboxdata.first_extruder = print->get_tool_ordering().first_extruder();
bboxdata.bed_type = bed_type_to_gcode_string(print->config().curr_bed_type.value);
// get nozzle diameter
auto opt_nozzle_diameters = print->config().option<ConfigOptionFloats>("nozzle_diameter");
if (opt_nozzle_diameters != nullptr)