mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2026-02-20 11:32:31 -07:00
FIX: Printable area check results in gcode_check_result
Added a check for Gcode traces outside the printable area after the backend slicer, allowing command-line slicers to detect abnormal results. The GCodeProcessor's m_result.gcode_check_result.error_code now includes not only dual-head print range checks, but also checks for the machine's plate print range, wrapping detection area, and height violations. jira: none Change-Id: I44072ece3b4b525c77328cec2f76e205eb559cc4 (cherry picked from commit 054f936243968687f536170374a233ec912e8e42)
This commit is contained in:
parent
c0c12fcb1f
commit
aa9fb1fd34
4 changed files with 108 additions and 42 deletions
|
|
@ -1929,15 +1929,14 @@ void GCode::do_export(Print* print, const char* path, GCodeProcessorResult* resu
|
|||
|
||||
m_processor.result().filament_printable_reuslt = FilamentPrintableResult(conflict_filament, bed_type_to_gcode_string(m_config.curr_bed_type));
|
||||
}
|
||||
// check gcode is valid in multi_extruder printabele area
|
||||
// check gcode is valid in machine printabele area and multi_extruder printabele area
|
||||
int extruder_size = m_print->config().nozzle_diameter.values.size();
|
||||
if (extruder_size > 1) {
|
||||
std::vector<Polygons> extruder_unprintable_polys = m_print->get_extruder_unprintable_polygons();
|
||||
m_processor.check_multi_extruder_gcode_valid(extruder_unprintable_polys,
|
||||
m_print->get_extruder_printable_height(),
|
||||
m_print->get_filament_maps(),
|
||||
m_print->get_physical_unprintable_filaments(m_print->get_slice_used_filaments(false)));
|
||||
}
|
||||
std::vector<Polygons> extruder_unprintable_polys = m_print->get_extruder_unprintable_polygons();
|
||||
Pointfs plate_printable_area = m_print->config().printable_area.values;
|
||||
Pointfs wrapping_exclude_area_points = m_print->config().wrapping_exclude_area.values;
|
||||
m_processor.check_multi_extruder_gcode_valid(extruder_size, plate_printable_area, m_print->config().printable_height.value, wrapping_exclude_area_points,
|
||||
extruder_unprintable_polys, m_print->get_extruder_printable_height(), m_print->get_filament_maps(),
|
||||
m_print->get_physical_unprintable_filaments(m_print->get_slice_used_filaments(false)));
|
||||
|
||||
m_processor.finalize(true);
|
||||
// DoExport::update_print_estimated_times_stats(m_processor, print->m_print_statistics);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue