diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp index a0eec8817c..7adf5828bf 100644 --- a/src/libslic3r/GCode/GCodeProcessor.cpp +++ b/src/libslic3r/GCode/GCodeProcessor.cpp @@ -5436,6 +5436,16 @@ void GCodeProcessor::process_T(const std::string_view command) } +void GCodeProcessor::init_filament_maps_and_nozzle_type_when_import_only_gcode() +{ + if (m_filament_maps.empty()) { + m_filament_maps.assign((int) EnforcerBlockerType::ExtruderMax, 1); + } + if (m_result.nozzle_type.empty()) { + m_result.nozzle_type.assign((int) EnforcerBlockerType::ExtruderMax, NozzleType::ntUndefine); + } +} + void GCodeProcessor::process_filament_change(int id) { assert(id < m_result.filaments_count); @@ -5811,7 +5821,7 @@ void GCodeProcessor::update_slice_warnings() warning.params.clear(); warning.level=1; - std::vectornozzle_hrc_lists(m_result.nozzle_type.size(), 0); + std::vector nozzle_hrc_lists(m_result.nozzle_type.size(), 0); // store the nozzle hrc of each extruder for (size_t idx = 0; idx < m_result.nozzle_type.size(); ++idx) { nozzle_hrc_lists[idx] = m_result.nozzle_hrc; diff --git a/src/libslic3r/GCode/GCodeProcessor.hpp b/src/libslic3r/GCode/GCodeProcessor.hpp index cca4c59433..23fa419494 100644 --- a/src/libslic3r/GCode/GCodeProcessor.hpp +++ b/src/libslic3r/GCode/GCodeProcessor.hpp @@ -838,7 +838,7 @@ class Print; public: GCodeProcessor(); - + void init_filament_maps_and_nozzle_type_when_import_only_gcode(); // check whether the gcode path meets the filament_map grouping requirements bool check_multi_extruder_gcode_valid(const std::vector &unprintable_areas, const std::vector &printable_heights, diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 08437f6e0b..b1c906c1c5 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -12324,6 +12324,7 @@ void Plater::load_gcode(const wxString& filename) // process gcode GCodeProcessor processor; + processor.init_filament_maps_and_nozzle_type_when_import_only_gcode(); try { GCodeProcessor::s_IsBBLPrinter = wxGetApp().preset_bundle->is_bbl_vendor();