diff --git a/resources/calib/temperature_tower/temperature_tower.stl b/resources/calib/temperature_tower/temperature_tower.stl index bd8a843c34..b75f9af53b 100644 Binary files a/resources/calib/temperature_tower/temperature_tower.stl and b/resources/calib/temperature_tower/temperature_tower.stl differ diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index d7b695736b..803af452ac 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -8069,7 +8069,8 @@ void Plater::calib_temp(const Calib_Params& params) { auto obj_bb = model().objects[0]->bounding_box(); auto block_count = lround((350 - params.end) / 5 + 1); if(block_count > 0){ - auto new_height = block_count * 10.0; + // add EPSILON offset to avoid cutting at the exact location where the flat surface is + auto new_height = block_count * 10.0 + EPSILON; if (new_height < obj_bb.size().z()) { std::array plane_pts; plane_pts[0] = Vec3d(obj_bb.min(0), obj_bb.min(1), new_height); @@ -8084,7 +8085,7 @@ void Plater::calib_temp(const Calib_Params& params) { obj_bb = model().objects[0]->bounding_box(); block_count = lround((350 - params.start) / 5); if(block_count > 0){ - auto new_height = block_count * 10.0; + auto new_height = block_count * 10.0 + EPSILON; if (new_height < obj_bb.size().z()) { std::array plane_pts; plane_pts[0] = Vec3d(obj_bb.min(0), obj_bb.min(1), new_height);