diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp index 5f9c8c1cbc..888edd6c21 100644 --- a/src/libslic3r/Model.cpp +++ b/src/libslic3r/Model.cpp @@ -1538,7 +1538,7 @@ ModelObjectPtrs ModelObject::cut(size_t instance, std::array plane_poi bool keep_lower = attributes.has(ModelObjectCutAttribute::KeepLower); bool cut_to_parts = attributes.has(ModelObjectCutAttribute::CutToParts); ModelObject* upper = keep_upper ? ModelObject::new_clone(*this) : nullptr; - ModelObject* lower = cut_to_parts ? upper : (keep_lower ? ModelObject::new_clone(*this) : nullptr); + ModelObject* lower = (cut_to_parts&&upper!=nullptr) ? upper : (keep_lower ? ModelObject::new_clone(*this) : nullptr); if (attributes.has(ModelObjectCutAttribute::KeepUpper)) { upper->set_model(nullptr);