mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-16 18:12:10 +00:00
Improve gcode preview flow rate scale (#9319)
* Ignore very tiny extrusions in flow rate scale (SoftFever/OrcaSlicer#9190) * Don't show flow rate if it's not extrusion * Merge branch 'main' into bugfox/gcode-viewer-flow-scale
This commit is contained in:
@@ -412,6 +412,7 @@ void GCodeViewer::SequentialView::Marker::render(int canvas_width, int canvas_he
|
||||
// break;
|
||||
// }
|
||||
case EViewType::VolumetricRate: {
|
||||
if (m_curr_move.type != EMoveType::Extrude) break;
|
||||
ImGui::SameLine(startx2);
|
||||
sprintf(buf, "%s%.2f", flow.c_str(), m_curr_move.volumetric_rate());
|
||||
ImGui::PushItemWidth(item_size);
|
||||
@@ -1143,8 +1144,12 @@ void GCodeViewer::refresh(const GCodeProcessorResult& gcode_result, const std::v
|
||||
m_extrusions.ranges.width.update_from(round_to_bin(curr.width));
|
||||
m_extrusions.ranges.fan_speed.update_from(curr.fan_speed);
|
||||
m_extrusions.ranges.temperature.update_from(curr.temperature);
|
||||
if (curr.extrusion_role != erCustom || is_visible(erCustom))
|
||||
m_extrusions.ranges.volumetric_rate.update_from(round_to_bin(curr.volumetric_rate()));
|
||||
if (curr.delta_extruder > 0.005 && curr.travel_dist > 0.01) {
|
||||
// Ignore very tiny extrusions from flow rate calculation, because
|
||||
// it could give very imprecise result due to rounding in gcode generation
|
||||
if (curr.extrusion_role != erCustom || is_visible(erCustom))
|
||||
m_extrusions.ranges.volumetric_rate.update_from(round_to_bin(curr.volumetric_rate()));
|
||||
}
|
||||
|
||||
if (curr.layer_duration > 0.f) {
|
||||
m_extrusions.ranges.layer_duration.update_from(curr.layer_duration);
|
||||
|
||||
Reference in New Issue
Block a user