Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsupermerill <merill@free.fr>2022-08-31 22:21:30 +0300
committersupermerill <merill@free.fr>2022-09-16 17:13:15 +0300
commitac6559872f03fc9e2b7afc907b3f981c069aa929 (patch)
tree8c2a9c2fe26753d2e74059af6c9a79a427ef2632
parent7a9ee2fe2b49c0cd59dd6435fdefd84a8077df72 (diff)
Fix first layer z position i the gcode viewer.
supermerill/SuperSlicer/issues/3125
-rw-r--r--src/libslic3r/GCode/GCodeProcessor.cpp9
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],