diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index 03b8bb6d8..2485c3128 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -77,8 +77,6 @@ static std::string get_view_type_string(GCodeViewer::EViewType view_type) return _u8L("Filament"); else if (view_type == GCodeViewer::EViewType::LayerTime) return _u8L("Layer Time"); - else if (view_type == GCodeViewer::EViewType::LayerTimeLog) - return _u8L("Layer Time (log)"); return ""; } @@ -282,12 +280,13 @@ float GCodeViewer::Extrusions::Range::get_value_at_step(int step) const { if (!log_scale) return min + static_cast(step) * step_size(); else + // calculate log-average { float min_range = min; if (min_range == 0) min_range = 0.0001f; float step_size = std::log(max / min_range) / (static_cast(Range_Colors.size()) - 1.0f); - return std::log(min) + static_cast(step) * step_size; + return std::exp(std::log(min) + static_cast(step) * step_size); } } GCodeViewer::SequentialRangeCap::~SequentialRangeCap() { @@ -380,7 +379,6 @@ void GCodeViewer::SequentialView::Marker::render(int canvas_width, int canvas_he std::string speed = ImGui::ColorMarkerStart + _u8L("Speed: ") + ImGui::ColorMarkerEnd; std::string flow = ImGui::ColorMarkerStart + _u8L("Flow: ") + ImGui::ColorMarkerEnd; std::string layer_time = ImGui::ColorMarkerStart + _u8L("Layer Time: ") + ImGui::ColorMarkerEnd; - std::string layer_time_log = ImGui::ColorMarkerStart + _u8L("Layer Time(log): ") + ImGui::ColorMarkerEnd; std::string fanspeed = ImGui::ColorMarkerStart + _u8L("Fan Speed: ") + ImGui::ColorMarkerEnd; std::string temperature = ImGui::ColorMarkerStart + _u8L("Temperature: ") + ImGui::ColorMarkerEnd; const float item_size = imgui.calc_text_size("X: 000.000 ").x; @@ -394,7 +392,7 @@ void GCodeViewer::SequentialView::Marker::render(int canvas_width, int canvas_he if (view_type == EViewType::FeatureType || view_type == EViewType::ColorPrint) show_extra_text = false; // Feedrate and LayerTime shall always show extra text - else if (view_type == EViewType::Feedrate || view_type == EViewType::LayerTime || view_type == EViewType::LayerTimeLog) + else if (view_type == EViewType::Feedrate || view_type == EViewType::LayerTime) show_extra_text = true; if (show_extra_text) { @@ -461,13 +459,6 @@ void GCodeViewer::SequentialView::Marker::render(int canvas_width, int canvas_he imgui.text(buf); break; } - case EViewType::LayerTimeLog: { - ImGui::SameLine(window_padding + item_size + item_spacing); - sprintf(buf, "%s%.1f", layer_time_log.c_str(), std::log(m_curr_move.layer_duration)); - ImGui::PushItemWidth(item_size); - imgui.text(buf); - break; - } default: break; } @@ -932,7 +923,6 @@ void GCodeViewer::update_by_mode(ConfigOptionMode mode) view_type_items.push_back(EViewType::Width); view_type_items.push_back(EViewType::VolumetricRate); view_type_items.push_back(EViewType::LayerTime); - view_type_items.push_back(EViewType::LayerTimeLog); view_type_items.push_back(EViewType::FanSpeed); view_type_items.push_back(EViewType::Temperature); if (mode == ConfigOptionMode::comDevelop) { @@ -1172,7 +1162,6 @@ void GCodeViewer::refresh(const GCodeProcessorResult& gcode_result, const std::v if (curr.layer_duration > 0.f) { m_extrusions.ranges.layer_duration.update_from(curr.layer_duration); - m_extrusions.ranges.layer_duration_log.update_from(curr.layer_duration); } [[fallthrough]]; } @@ -3256,7 +3245,6 @@ void GCodeViewer::refresh_render_paths(bool keep_sequential_current_first, bool case EViewType::FanSpeed: { color = m_extrusions.ranges.fan_speed.get_color_at(path.fan_speed); break; } case EViewType::Temperature: { color = m_extrusions.ranges.temperature.get_color_at(path.temperature); break; } case EViewType::LayerTime: { color = m_extrusions.ranges.layer_duration.get_color_at(path.layer_time); break; } - case EViewType::LayerTimeLog: { color = m_extrusions.ranges.layer_duration_log.get_color_at(path.layer_time); break; } case EViewType::VolumetricRate: { color = m_extrusions.ranges.volumetric_rate.get_color_at(path.volumetric_rate); break; } case EViewType::Tool: { color = m_tools.m_tool_colors[path.extruder_id]; break; } case EViewType::ColorPrint: { @@ -4533,7 +4521,6 @@ void GCodeViewer::render_legend(float &legend_height, int canvas_width, int canv case EViewType::Temperature: { imgui.title(_u8L("Temperature (°C)")); break; } case EViewType::VolumetricRate: { imgui.title(_u8L("Volumetric flow rate (mm³/s)")); break; } case EViewType::LayerTime: { imgui.title(_u8L("Layer Time (s)")); break; } - case EViewType::LayerTimeLog: { imgui.title(_u8L("Layer Time (log) (s)")); break; } case EViewType::Tool: { @@ -4689,7 +4676,6 @@ void GCodeViewer::render_legend(float &legend_height, int canvas_width, int canv case EViewType::FanSpeed: { append_range(m_extrusions.ranges.fan_speed, 0); break; } case EViewType::Temperature: { append_range(m_extrusions.ranges.temperature, 0); break; } case EViewType::LayerTime: { append_range(m_extrusions.ranges.layer_duration, 1); break; } - case EViewType::LayerTimeLog: { append_range(m_extrusions.ranges.layer_duration_log, 1); break; } case EViewType::VolumetricRate: { append_range(m_extrusions.ranges.volumetric_rate, 2); break; } case EViewType::Tool: { diff --git a/src/slic3r/GUI/GCodeViewer.hpp b/src/slic3r/GUI/GCodeViewer.hpp index 6bd7309c2..465b3a6ec 100644 --- a/src/slic3r/GUI/GCodeViewer.hpp +++ b/src/slic3r/GUI/GCodeViewer.hpp @@ -408,7 +408,7 @@ class GCodeViewer min = std::min(min, value); max = std::max(max, value); } - void reset(bool log = false) { min = FLT_MAX; max = -FLT_MAX; count = 0; log_scale = false; log_scale = log; } + void reset(bool log = false) { min = FLT_MAX; max = -FLT_MAX; count = 0; log_scale = log; } float step_size() const; Color get_color_at(float value) const; @@ -432,7 +432,6 @@ class GCodeViewer Range temperature; // Color mapping by layer time. Range layer_duration; - Range layer_duration_log; void reset() { height.reset(); width.reset(); @@ -440,8 +439,7 @@ class GCodeViewer fan_speed.reset(); volumetric_rate.reset(); temperature.reset(); - layer_duration.reset(); - layer_duration_log.reset(true); + layer_duration.reset(true); } }; @@ -721,7 +719,6 @@ public: ColorPrint, FilamentId, LayerTime, - LayerTimeLog, Count };