From 440a5eb2a0f6e43e0e9ce582a33ac599c24d1245 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Sun, 19 Feb 2017 21:45:38 +0100 Subject: [PATCH] Fixes an ugly infinite loop issue. https://github.com/prusa3d/Slic3r/issues/142 --- xs/src/libslic3r/SupportMaterial.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xs/src/libslic3r/SupportMaterial.cpp b/xs/src/libslic3r/SupportMaterial.cpp index 9425b2f9f..0afd2114b 100644 --- a/xs/src/libslic3r/SupportMaterial.cpp +++ b/xs/src/libslic3r/SupportMaterial.cpp @@ -1051,9 +1051,10 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::raft_and_int if (std::abs(extr1z) < EPSILON) { // This layer interval starts with the 1st layer. Print the 1st layer using the prescribed 1st layer thickness. assert(intermediate_layers.empty()); + assert(extr2z > m_slicing_params.first_print_layer_height - EPSILON); MyLayer &layer_new = layer_allocate(layer_storage, sltIntermediate); layer_new.bottom_z = 0.; - layer_new.print_z = extr1z = m_slicing_params.first_print_layer_height; + layer_new.print_z = extr1z = std::min(extr2z, m_slicing_params.first_print_layer_height); layer_new.height = extr1z; intermediate_layers.push_back(&layer_new); // Continue printing the other layers up to extr2z.