From 773e79d9f4f4bc1e2ec4d239e8c8e45115bf99ec Mon Sep 17 00:00:00 2001 From: "qing.zhang" Date: Wed, 19 Jun 2024 14:23:01 +0800 Subject: [PATCH] FIX: error toppest layer height on scarf seam Jira: none Signed-off-by: qing.zhang Change-Id: Iac47613c8e161059c420f04f2c34febfb630cd45 --- src/libslic3r/GCode/GCodeProcessor.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp index 54e117c56..3787f464a 100644 --- a/src/libslic3r/GCode/GCodeProcessor.cpp +++ b/src/libslic3r/GCode/GCodeProcessor.cpp @@ -3677,6 +3677,17 @@ void GCodeProcessor::process_G2_G3(const GCodeReader::GCodeLine& line) m_seams_detector.activate(true); m_seams_detector.set_first_vertex(m_result.moves.back().position - m_extruder_offsets[m_extruder_id] - plate_offset); } + + //BBS: some layer may only has G3/G3, update right layer height + if (m_detect_layer_based_on_tag && !m_result.spiral_vase_layers.empty()) { + if (delta_pos[Z] >= 0.0 && type == EMoveType::Extrude && m_result.spiral_vase_layers.back().first == FLT_MAX) { + // replace layer height placeholder with correct value + m_result.spiral_vase_layers.back().first = static_cast(m_end_position[Z]); + } + if (!m_result.moves.empty()) + m_result.spiral_vase_layers.back().second.second = m_result.moves.size() - 1 - m_seams_count; + } + //BBS: store move store_move_vertex(type, m_move_path_type); }