mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-16 18:12:10 +00:00
ENH: Add gcode check for multi_extruder
jira: none Change-Id: Iebc43e608c4509eb62b280af2d401fa9e0e089ba (cherry picked from commit c75c10e312b8d0bd5404d92db88c95a9e6186bc1)
This commit is contained in:
@@ -1627,6 +1627,19 @@ void GCode::do_export(Print* print, const char* path, GCodeProcessorResult* resu
|
||||
break;
|
||||
}
|
||||
}
|
||||
// check gcode is valid in multi_extruder printabele area
|
||||
int extruder_size = m_print->config().nozzle_diameter.values.size();
|
||||
if (extruder_size > 1) {
|
||||
std::vector<Vec2d> printable_area = m_print->get_printable_area();
|
||||
Polygon printable_poly = Polygon::new_scale(printable_area);
|
||||
std::vector<std::vector<Vec2d>> extruder_printable_areas = m_print->get_extruder_printable_area();
|
||||
std::vector<Polygons> extruder_unprintable_polys;
|
||||
for (const auto &e_printable_area : extruder_printable_areas) {
|
||||
Polygons ploys = diff(printable_poly, Polygon::new_scale(e_printable_area));
|
||||
extruder_unprintable_polys.emplace_back(ploys);
|
||||
}
|
||||
m_processor.check_multi_extruder_gcode_valid(extruder_unprintable_polys, m_print->get_filament_maps());
|
||||
}
|
||||
|
||||
m_processor.finalize(true);
|
||||
// DoExport::update_print_estimated_times_stats(m_processor, print->m_print_statistics);
|
||||
|
||||
Reference in New Issue
Block a user