diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index c9a2ef2549..f6c11632aa 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -1898,36 +1898,42 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato if (!print.config().small_area_infill_flow_compensation_model.empty()) m_small_area_infill_flow_compensator = make_unique(print.config()); - - file.write_format("; HEADER_BLOCK_START\n"); - // Write information on the generator. - file.write_format("; generated by %s on %s\n", Slic3r::header_slic3r_generated().c_str(), Slic3r::Utils::local_timestamp().c_str()); - if (is_bbl_printers) - file.write_format(";%s\n", GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Estimated_Printing_Time_Placeholder).c_str()); - //BBS: total layer number - file.write_format(";%s\n", GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Total_Layer_Number_Placeholder).c_str()); - m_enable_exclude_object = config().exclude_object; - //Orca: extra check for bbl printer - if (is_bbl_printers) { - if (print.calib_params().mode == CalibMode::Calib_None) { // Don't support skipping in cali mode - // list all label_object_id with sorted order here - m_enable_exclude_object = true; - m_label_objects_ids.clear(); - m_label_objects_ids.reserve(print.num_object_instances()); - for (const PrintObject *print_object : print.objects()) - for (const PrintInstance &print_instance : print_object->instances()) - m_label_objects_ids.push_back(print_instance.model_instance->get_labeled_id()); - - std::sort(m_label_objects_ids.begin(), m_label_objects_ids.end()); - - std::string objects_id_list = "; model label id: "; - for (auto it = m_label_objects_ids.begin(); it != m_label_objects_ids.end(); it++) - objects_id_list += (std::to_string(*it) + (it != m_label_objects_ids.end() - 1 ? "," : "\n")); - file.writeln(objects_id_list); - } else { - m_enable_exclude_object = false; - m_label_objects_ids.clear(); - } + // Orca: Don't output Header block if BTT thumbnail is identified in the list + // Get the thumbnails value as a string + std::string thumbnails_value = print.config().option("thumbnails")->value; + // search string for the BTT_TFT label + bool has_BTT_thumbnail = (thumbnails_value.find("BTT_TFT") != std::string::npos); + + if(!has_BTT_thumbnail){ + file.write_format("; HEADER_BLOCK_START\n"); + // Write information on the generator. + file.write_format("; generated by %s on %s\n", Slic3r::header_slic3r_generated().c_str(), Slic3r::Utils::local_timestamp().c_str()); + if (is_bbl_printers) + file.write_format(";%s\n", GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Estimated_Printing_Time_Placeholder).c_str()); + //BBS: total layer number + file.write_format(";%s\n", GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Total_Layer_Number_Placeholder).c_str()); + m_enable_exclude_object = config().exclude_object; + //Orca: extra check for bbl printer + if (is_bbl_printers) { + if (print.calib_params().mode == CalibMode::Calib_None) { // Don't support skipping in cali mode + // list all label_object_id with sorted order here + m_enable_exclude_object = true; + m_label_objects_ids.clear(); + m_label_objects_ids.reserve(print.num_object_instances()); + for (const PrintObject *print_object : print.objects()) + for (const PrintInstance &print_instance : print_object->instances()) + m_label_objects_ids.push_back(print_instance.model_instance->get_labeled_id()); + + std::sort(m_label_objects_ids.begin(), m_label_objects_ids.end()); + + std::string objects_id_list = "; model label id: "; + for (auto it = m_label_objects_ids.begin(); it != m_label_objects_ids.end(); it++) + objects_id_list += (std::to_string(*it) + (it != m_label_objects_ids.end() - 1 ? "," : "\n")); + file.writeln(objects_id_list); + } else { + m_enable_exclude_object = false; + m_label_objects_ids.clear(); + } } { @@ -1949,7 +1955,7 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato } file.write_format("; HEADER_BLOCK_END\n\n"); - + } // BBS: write global config at the beginning of gcode file because printer // need these config information