mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-26 02:11:18 +00:00
Report Per-Object Slicing Errors in the CLI (#15834)
G-code generation collects errors raised per object, such as an empty first layer, into one SlicingErrors exception whose own message is just "Errors". The CLI's generic handler printed that word and recorded the generic slicing error text, so a headless caller had nothing to act on. Let Print render the per-object messages with each object's name, and have the CLI catch SlicingErrors ahead of the generic handler, print that text and record it as the result's error string. The exit code is unchanged. A unit test lifts a cube off the bed and checks the message names the object.
This commit is contained in:
@@ -7024,6 +7024,12 @@ int CLI::run(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
sliced_info.sliced_plates.push_back(sliced_plate_info);
|
||||
} catch (const Slic3r::SlicingErrors &exs) {
|
||||
const std::string message = print_fff ? print_fff->slicing_errors_message(exs) : std::string(exs.what());
|
||||
BOOST_LOG_TRIVIAL(error) << "found slicing or export error for partplate " << index+1 << ": " << message;
|
||||
boost::nowide::cerr << message << std::endl;
|
||||
record_exit_reson(outfile_dir, CLI_SLICING_ERROR, index+1, message, sliced_info);
|
||||
flush_and_exit(CLI_SLICING_ERROR);
|
||||
} catch (const std::exception &ex) {
|
||||
BOOST_LOG_TRIVIAL(error) << "found slicing or export error for partplate "<<index+1 << std::endl;
|
||||
boost::nowide::cerr << ex.what() << std::endl;
|
||||
|
||||
Reference in New Issue
Block a user