mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-03 03:10:37 +08:00
Fixes required by changes into libbgcode library interface
This commit is contained in:
parent
ec16420f11
commit
cd43a8e744
@ -1151,7 +1151,8 @@ void GCodeProcessor::process_binary_file(const std::string& filename, std::funct
|
|||||||
bgcode::core::FileHeader file_header;
|
bgcode::core::FileHeader file_header;
|
||||||
bgcode::core::EResult res = bgcode::core::read_header(*file, file_header, nullptr);
|
bgcode::core::EResult res = bgcode::core::read_header(*file, file_header, nullptr);
|
||||||
if (res != bgcode::core::EResult::Success)
|
if (res != bgcode::core::EResult::Success)
|
||||||
throw Slic3r::RuntimeError("File: " + filename + "does not contain a valid binary gcode\n Error: " + bgcode::core::translate_result(res) + "\n");
|
throw Slic3r::RuntimeError("File: " + filename + "does not contain a valid binary gcode\n Error: " +
|
||||||
|
std::string(bgcode::core::translate_result(res)) + "\n");
|
||||||
|
|
||||||
const bool verify_checksum = true;
|
const bool verify_checksum = true;
|
||||||
|
|
||||||
@ -1159,13 +1160,13 @@ void GCodeProcessor::process_binary_file(const std::string& filename, std::funct
|
|||||||
bgcode::core::BlockHeader block_header;
|
bgcode::core::BlockHeader block_header;
|
||||||
res = bgcode::core::read_next_block_header(*file, file_header, block_header, verify_checksum);
|
res = bgcode::core::read_next_block_header(*file, file_header, block_header, verify_checksum);
|
||||||
if (res != bgcode::core::EResult::Success)
|
if (res != bgcode::core::EResult::Success)
|
||||||
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n");
|
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n");
|
||||||
if ((bgcode::core::EBlockType)block_header.type != bgcode::core::EBlockType::FileMetadata)
|
if ((bgcode::core::EBlockType)block_header.type != bgcode::core::EBlockType::FileMetadata)
|
||||||
throw Slic3r::RuntimeError("Unable to find file metadata block in file: " + filename + "\n");
|
throw Slic3r::RuntimeError("Unable to find file metadata block in file: " + filename + "\n");
|
||||||
bgcode::base::FileMetadataBlock file_metadata_block;
|
bgcode::base::FileMetadataBlock file_metadata_block;
|
||||||
res = file_metadata_block.read_data(*file, file_header, block_header);
|
res = file_metadata_block.read_data(*file, file_header, block_header);
|
||||||
if (res != bgcode::core::EResult::Success)
|
if (res != bgcode::core::EResult::Success)
|
||||||
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n");
|
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n");
|
||||||
auto producer_it = std::find_if(file_metadata_block.raw_data.begin(), file_metadata_block.raw_data.end(),
|
auto producer_it = std::find_if(file_metadata_block.raw_data.begin(), file_metadata_block.raw_data.end(),
|
||||||
[](const std::pair<std::string, std::string>& item) { return item.first == "Producer"; });
|
[](const std::pair<std::string, std::string>& item) { return item.first == "Producer"; });
|
||||||
if (producer_it != file_metadata_block.raw_data.end() && boost::starts_with(producer_it->second, std::string(SLIC3R_APP_NAME)))
|
if (producer_it != file_metadata_block.raw_data.end() && boost::starts_with(producer_it->second, std::string(SLIC3R_APP_NAME)))
|
||||||
@ -1176,13 +1177,13 @@ void GCodeProcessor::process_binary_file(const std::string& filename, std::funct
|
|||||||
// read printer metadata block
|
// read printer metadata block
|
||||||
res = bgcode::core::read_next_block_header(*file, file_header, block_header, verify_checksum);
|
res = bgcode::core::read_next_block_header(*file, file_header, block_header, verify_checksum);
|
||||||
if (res != bgcode::core::EResult::Success)
|
if (res != bgcode::core::EResult::Success)
|
||||||
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n");
|
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n");
|
||||||
if ((bgcode::core::EBlockType)block_header.type != bgcode::core::EBlockType::PrinterMetadata)
|
if ((bgcode::core::EBlockType)block_header.type != bgcode::core::EBlockType::PrinterMetadata)
|
||||||
throw Slic3r::RuntimeError("Unable to find printer metadata block in file: " + filename + "\n");
|
throw Slic3r::RuntimeError("Unable to find printer metadata block in file: " + filename + "\n");
|
||||||
bgcode::base::PrinterMetadataBlock printer_metadata_block;
|
bgcode::base::PrinterMetadataBlock printer_metadata_block;
|
||||||
res = printer_metadata_block.read_data(*file, file_header, block_header);
|
res = printer_metadata_block.read_data(*file, file_header, block_header);
|
||||||
if (res != bgcode::core::EResult::Success)
|
if (res != bgcode::core::EResult::Success)
|
||||||
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n");
|
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n");
|
||||||
#if ENABLE_BINARIZED_GCODE_DEBUG
|
#if ENABLE_BINARIZED_GCODE_DEBUG
|
||||||
OutputDebugStringA("Printer metadata:\n");
|
OutputDebugStringA("Printer metadata:\n");
|
||||||
for (const auto& [key, value] : printer_metadata_block.raw_data) {
|
for (const auto& [key, value] : printer_metadata_block.raw_data) {
|
||||||
@ -1196,13 +1197,13 @@ void GCodeProcessor::process_binary_file(const std::string& filename, std::funct
|
|||||||
// read thumbnail blocks
|
// read thumbnail blocks
|
||||||
res = bgcode::core::read_next_block_header(*file, file_header, block_header, verify_checksum);
|
res = bgcode::core::read_next_block_header(*file, file_header, block_header, verify_checksum);
|
||||||
if (res != bgcode::core::EResult::Success)
|
if (res != bgcode::core::EResult::Success)
|
||||||
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n");
|
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n");
|
||||||
|
|
||||||
while ((bgcode::core::EBlockType)block_header.type == bgcode::core::EBlockType::Thumbnail) {
|
while ((bgcode::core::EBlockType)block_header.type == bgcode::core::EBlockType::Thumbnail) {
|
||||||
bgcode::base::ThumbnailBlock thumbnail_block;
|
bgcode::base::ThumbnailBlock thumbnail_block;
|
||||||
res = thumbnail_block.read_data(*file, file_header, block_header);
|
res = thumbnail_block.read_data(*file, file_header, block_header);
|
||||||
if (res != bgcode::core::EResult::Success)
|
if (res != bgcode::core::EResult::Success)
|
||||||
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n");
|
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n");
|
||||||
#if ENABLE_BINARIZED_GCODE_DEBUG
|
#if ENABLE_BINARIZED_GCODE_DEBUG
|
||||||
if (thumbnail_block.data.size() > 0) {
|
if (thumbnail_block.data.size() > 0) {
|
||||||
auto format_filename = [](const std::string& stem, const bgcode::base::ThumbnailBlock& block) {
|
auto format_filename = [](const std::string& stem, const bgcode::base::ThumbnailBlock& block) {
|
||||||
@ -1229,7 +1230,7 @@ void GCodeProcessor::process_binary_file(const std::string& filename, std::funct
|
|||||||
|
|
||||||
res = bgcode::core::read_next_block_header(*file, file_header, block_header, verify_checksum);
|
res = bgcode::core::read_next_block_header(*file, file_header, block_header, verify_checksum);
|
||||||
if (res != bgcode::core::EResult::Success)
|
if (res != bgcode::core::EResult::Success)
|
||||||
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n");
|
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
// read print metadata block
|
// read print metadata block
|
||||||
@ -1238,7 +1239,7 @@ void GCodeProcessor::process_binary_file(const std::string& filename, std::funct
|
|||||||
bgcode::base::PrintMetadataBlock print_metadata_block;
|
bgcode::base::PrintMetadataBlock print_metadata_block;
|
||||||
res = print_metadata_block.read_data(*file, file_header, block_header);
|
res = print_metadata_block.read_data(*file, file_header, block_header);
|
||||||
if (res != bgcode::core::EResult::Success)
|
if (res != bgcode::core::EResult::Success)
|
||||||
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n");
|
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n");
|
||||||
#if ENABLE_BINARIZED_GCODE_DEBUG
|
#if ENABLE_BINARIZED_GCODE_DEBUG
|
||||||
OutputDebugStringA("Print metadata:\n");
|
OutputDebugStringA("Print metadata:\n");
|
||||||
for (const auto& [key, value] : print_metadata_block.raw_data) {
|
for (const auto& [key, value] : print_metadata_block.raw_data) {
|
||||||
@ -1252,13 +1253,13 @@ void GCodeProcessor::process_binary_file(const std::string& filename, std::funct
|
|||||||
// read slicer metadata block
|
// read slicer metadata block
|
||||||
res = bgcode::core::read_next_block_header(*file, file_header, block_header, verify_checksum);
|
res = bgcode::core::read_next_block_header(*file, file_header, block_header, verify_checksum);
|
||||||
if (res != bgcode::core::EResult::Success)
|
if (res != bgcode::core::EResult::Success)
|
||||||
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n");
|
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n");
|
||||||
if ((bgcode::core::EBlockType)block_header.type != bgcode::core::EBlockType::SlicerMetadata)
|
if ((bgcode::core::EBlockType)block_header.type != bgcode::core::EBlockType::SlicerMetadata)
|
||||||
throw Slic3r::RuntimeError("Unable to find slicer metadata block in file: " + filename + "\n");
|
throw Slic3r::RuntimeError("Unable to find slicer metadata block in file: " + filename + "\n");
|
||||||
bgcode::base::SlicerMetadataBlock slicer_metadata_block;
|
bgcode::base::SlicerMetadataBlock slicer_metadata_block;
|
||||||
res = slicer_metadata_block.read_data(*file, file_header, block_header);
|
res = slicer_metadata_block.read_data(*file, file_header, block_header);
|
||||||
if (res != bgcode::core::EResult::Success)
|
if (res != bgcode::core::EResult::Success)
|
||||||
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n");
|
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n");
|
||||||
#if ENABLE_BINARIZED_GCODE_DEBUG
|
#if ENABLE_BINARIZED_GCODE_DEBUG
|
||||||
OutputDebugStringA("Slicer metadata:\n");
|
OutputDebugStringA("Slicer metadata:\n");
|
||||||
for (const auto& [key, value] : slicer_metadata_block.raw_data) {
|
for (const auto& [key, value] : slicer_metadata_block.raw_data) {
|
||||||
@ -1287,14 +1288,14 @@ void GCodeProcessor::process_binary_file(const std::string& filename, std::funct
|
|||||||
// read gcodes block
|
// read gcodes block
|
||||||
res = bgcode::core::read_next_block_header(*file, file_header, block_header, verify_checksum);
|
res = bgcode::core::read_next_block_header(*file, file_header, block_header, verify_checksum);
|
||||||
if (res != bgcode::core::EResult::Success)
|
if (res != bgcode::core::EResult::Success)
|
||||||
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n");
|
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n");
|
||||||
if ((bgcode::core::EBlockType)block_header.type != bgcode::core::EBlockType::GCode)
|
if ((bgcode::core::EBlockType)block_header.type != bgcode::core::EBlockType::GCode)
|
||||||
throw Slic3r::RuntimeError("Unable to find gcode block in file: " + filename + "\n");
|
throw Slic3r::RuntimeError("Unable to find gcode block in file: " + filename + "\n");
|
||||||
while ((bgcode::core::EBlockType)block_header.type == bgcode::core::EBlockType::GCode) {
|
while ((bgcode::core::EBlockType)block_header.type == bgcode::core::EBlockType::GCode) {
|
||||||
bgcode::base::GCodeBlock block;
|
bgcode::base::GCodeBlock block;
|
||||||
res = block.read_data(*file, file_header, block_header);
|
res = block.read_data(*file, file_header, block_header);
|
||||||
if (res != bgcode::core::EResult::Success)
|
if (res != bgcode::core::EResult::Success)
|
||||||
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n");
|
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n");
|
||||||
|
|
||||||
// TODO: Update m_result.lines_ends
|
// TODO: Update m_result.lines_ends
|
||||||
|
|
||||||
@ -1307,7 +1308,7 @@ void GCodeProcessor::process_binary_file(const std::string& filename, std::funct
|
|||||||
|
|
||||||
res = bgcode::core::read_next_block_header(*file, file_header, block_header, verify_checksum);
|
res = bgcode::core::read_next_block_header(*file, file_header, block_header, verify_checksum);
|
||||||
if (res != bgcode::core::EResult::Success)
|
if (res != bgcode::core::EResult::Success)
|
||||||
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + bgcode::core::translate_result(res) + "\n");
|
throw Slic3r::RuntimeError("Error while reading file: " + filename + ": " + std::string(bgcode::core::translate_result(res)) + "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Don't post-process the G-code to update time stamps.
|
// Don't post-process the G-code to update time stamps.
|
||||||
|
@ -5478,7 +5478,7 @@ void Plater::convert_gcode_to_ascii()
|
|||||||
wxBusyCursor busy;
|
wxBusyCursor busy;
|
||||||
bgcode::core::EResult res = bgcode::convert::from_binary_to_ascii(*in_file, *out_file, true);
|
bgcode::core::EResult res = bgcode::convert::from_binary_to_ascii(*in_file, *out_file, true);
|
||||||
if (res != bgcode::core::EResult::Success) {
|
if (res != bgcode::core::EResult::Success) {
|
||||||
MessageDialog msg_dlg(this, _L(bgcode::core::translate_result(res)), _L("Error converting gcode file"), wxICON_INFORMATION | wxOK);
|
MessageDialog msg_dlg(this, _L(std::string(bgcode::core::translate_result(res))), _L("Error converting gcode file"), wxICON_INFORMATION | wxOK);
|
||||||
msg_dlg.ShowModal();
|
msg_dlg.ShowModal();
|
||||||
scoped_out_file.unscope();
|
scoped_out_file.unscope();
|
||||||
fclose(out_file);
|
fclose(out_file);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user