diff --git a/src/libslic3r/Layer.cpp b/src/libslic3r/Layer.cpp index ddc16cddf..c42bde7d0 100644 --- a/src/libslic3r/Layer.cpp +++ b/src/libslic3r/Layer.cpp @@ -206,6 +206,10 @@ void Layer::make_perimeters() slices[surface.extra_perimeters].emplace_back(surface); if (layerm->region()->config().fill_density > layerm_config->region()->config().fill_density) layerm_config = layerm; + //clean list as only the layerm_config will have these ones recomputed + layerm->perimeters.clear(); + layerm->thin_fills.clear(); + layerm->fill_no_overlap_expolygons.clear(); } // merge the surfaces assigned to each group for (std::pair &surfaces_with_extra_perimeters : slices) diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index d61c8abeb..c6b0b55fa 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -5239,7 +5239,8 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va } else if (opt_key == "z_steps_per_mm") { opt_key = "z_step"; float v = boost::lexical_cast(value); - value = boost::lexical_cast(1/v); + if(v > 0) + value = boost::lexical_cast(1/v); } else if (opt_key == "infill_not_connected") { opt_key = "infill_connection"; if (value == "1") diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index f9fef6521..dbc332303 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -786,6 +786,11 @@ void ObjectList::copy_settings_to_clipboard() void ObjectList::paste_settings_into_list() { wxDataViewItem item = GetSelection(); + if (!item.IsOk()) { + BOOST_LOG_TRIVIAL(error) << "Warning: can't paste settings on empty selection\n"; + return; + } + assert(item.IsOk()); if (m_objects_model->GetItemType(item) & itSettings) item = m_objects_model->GetParent(item);