diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index 98cbcc0e54..ba336e9ee5 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -870,15 +870,23 @@ void GCodeViewer::init(ConfigOptionMode mode, PresetBundle* preset_bundle) if (preset_bundle) m_nozzle_nums = preset_bundle->get_printer_extruder_count(); + bool multimaterial = preset_bundle->filament_presets.empty() ? 0 : preset_bundle->filament_presets.size() > 1; // set to color print by default if use multi extruders if (m_nozzle_nums > 1) { - m_view_type_sel = std::distance(view_type_items.begin(),std::find(view_type_items.begin(), view_type_items.end(), EViewType::Summary)); + m_view_type_sel = std::distance(view_type_items.begin(), + std::find(view_type_items.begin(), view_type_items.end(), EViewType::Summary)); set_view_type(EViewType::Summary); - } else { - m_view_type_sel = std::distance(view_type_items.begin(),std::find(view_type_items.begin(), view_type_items.end(), EViewType::ColorPrint)); + } else if (multimaterial) { + m_view_type_sel = std::distance(view_type_items.begin(), + std::find(view_type_items.begin(), view_type_items.end(), EViewType::ColorPrint)); set_view_type(EViewType::ColorPrint); + } else { + m_view_type_sel = std::distance(view_type_items.begin(), + std::find(view_type_items.begin(), view_type_items.end(), EViewType::FeatureType)); + set_view_type(EViewType::FeatureType); } + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": finished"); }