diff options
author | supermerill <merill@free.fr> | 2022-08-31 22:21:30 +0300 |
---|---|---|
committer | supermerill <merill@free.fr> | 2022-09-16 17:13:15 +0300 |
commit | ac6559872f03fc9e2b7afc907b3f981c069aa929 (patch) | |
tree | 8c2a9c2fe26753d2e74059af6c9a79a427ef2632 | |
parent | 7a9ee2fe2b49c0cd59dd6435fdefd84a8077df72 (diff) |
Fix first layer z position i the gcode viewer.
supermerill/SuperSlicer/issues/3125
-rw-r--r-- | src/libslic3r/GCode/GCodeProcessor.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp index f4bc0943d..b06965335 100644 --- a/src/libslic3r/GCode/GCodeProcessor.cpp +++ b/src/libslic3r/GCode/GCodeProcessor.cpp @@ -930,6 +930,7 @@ void GCodeProcessor::apply_config(const PrintConfig& config) m_time_processor.export_remaining_time_enabled = config.remaining_times.value; m_use_volumetric_e = config.use_volumetric_e; + // first_layer_height is in region config now. so won't be available here now. use m_forced_height from HEIGHT tag. const ConfigOptionFloatOrPercent* first_layer_height = config.option<ConfigOptionFloatOrPercent>("first_layer_height"); if (first_layer_height != nullptr) m_first_layer_height = std::abs(first_layer_height->value); @@ -3589,14 +3590,18 @@ void GCodeProcessor::store_move_vertex(EMoveType type) m_extruder_id, m_cp_color.current, #if ENABLE_Z_OFFSET_CORRECTION - Vec3f(float(m_end_position[X]), float(m_end_position[Y]), float(m_processing_start_custom_gcode ? m_first_layer_height : m_end_position[Z] - m_z_offset)) + m_extruder_offsets[m_extruder_id], + //note: m_first_layer_height may not be set. use m_end_position instead if it's the case + Vec3f(float(m_end_position[X]), float(m_end_position[Y]), + float(m_processing_start_custom_gcode + ? ((m_first_layer_height == 0 && m_end_position[Z] > 0) ? m_end_position[Z] : m_first_layer_height) + : m_end_position[Z] - m_z_offset)) + m_extruder_offsets[m_extruder_id], #else Vec3f(float(m_end_position[X]), float(m_end_position[Y]), float(m_processing_start_custom_gcode ? m_first_layer_height : m_end_position[Z])) + m_extruder_offsets[m_extruder_id], #endif // ENABLE_Z_OFFSET_CORRECTION float(m_end_position[E] - m_start_position[E]), // delta_extruder m_feedrate, m_width, - m_height, + (m_height == 0 && m_forced_height > 0) ? m_forced_height : m_height, m_mm3_per_mm, m_fan_speed, m_extruder_temps[m_extruder_id], |