Follow-up 995512f280
DoubleSlider improvements:
Fixed a case when wipe tower is used to the end of print and there is one layer which is not marked in layers_times statistics
This commit is contained in:
parent
1b3b4c5694
commit
f5d3866847
@ -387,7 +387,7 @@ void Control::SetTicksValues(const Info& custom_gcode_per_print_z)
|
|||||||
Update();
|
Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Control::SetLayersTimes(const std::vector<float>& layers_times)
|
void Control::SetLayersTimes(const std::vector<float>& layers_times, float total_time)
|
||||||
{
|
{
|
||||||
m_layers_times.clear();
|
m_layers_times.clear();
|
||||||
if (layers_times.empty())
|
if (layers_times.empty())
|
||||||
@ -405,11 +405,18 @@ void Control::SetLayersTimes(const std::vector<float>& layers_times)
|
|||||||
m_layers_values = m_values;
|
m_layers_values = m_values;
|
||||||
sort(m_layers_values.begin(), m_layers_values.end());
|
sort(m_layers_values.begin(), m_layers_values.end());
|
||||||
m_layers_values.erase(unique(m_layers_values.begin(), m_layers_values.end()), m_layers_values.end());
|
m_layers_values.erase(unique(m_layers_values.begin(), m_layers_values.end()), m_layers_values.end());
|
||||||
|
|
||||||
|
// When whipe tower is used to the end of print, there is one layer which is not marked in layers_times
|
||||||
|
// So, add this value from the total print time value
|
||||||
|
if (m_layers_values.size() != m_layers_times.size())
|
||||||
|
for (size_t i = m_layers_times.size(); i < m_layers_values.size(); i++)
|
||||||
|
m_layers_times.push_back(total_time);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Control::SetLayersTimes(const std::vector<double>& layers_times)
|
void Control::SetLayersTimes(const std::vector<double>& layers_times)
|
||||||
{
|
{
|
||||||
|
m_is_smart_wipe_tower = false;
|
||||||
m_layers_times = layers_times;
|
m_layers_times = layers_times;
|
||||||
for (size_t i = 1; i < m_layers_times.size(); i++)
|
for (size_t i = 1; i < m_layers_times.size(); i++)
|
||||||
m_layers_times[i] += m_layers_times[i - 1];
|
m_layers_times[i] += m_layers_times[i - 1];
|
||||||
|
@ -223,7 +223,7 @@ public:
|
|||||||
|
|
||||||
Info GetTicksValues() const;
|
Info GetTicksValues() const;
|
||||||
void SetTicksValues(const Info &custom_gcode_per_print_z);
|
void SetTicksValues(const Info &custom_gcode_per_print_z);
|
||||||
void SetLayersTimes(const std::vector<float>& layers_times);
|
void SetLayersTimes(const std::vector<float>& layers_times, float total_time);
|
||||||
void SetLayersTimes(const std::vector<double>& layers_times);
|
void SetLayersTimes(const std::vector<double>& layers_times);
|
||||||
|
|
||||||
void SetDrawMode(bool is_sla_print, bool is_sequential_print);
|
void SetDrawMode(bool is_sla_print, bool is_sequential_print);
|
||||||
|
@ -639,8 +639,10 @@ void Preview::update_layers_slider(const std::vector<double>& layers_z, bool kee
|
|||||||
m_layers_slider->SetDrawMode(sla_print_technology, sequential_print);
|
m_layers_slider->SetDrawMode(sla_print_technology, sequential_print);
|
||||||
if (sla_print_technology)
|
if (sla_print_technology)
|
||||||
m_layers_slider->SetLayersTimes(plater->sla_print().print_statistics().layers_times);
|
m_layers_slider->SetLayersTimes(plater->sla_print().print_statistics().layers_times);
|
||||||
else
|
else {
|
||||||
m_layers_slider->SetLayersTimes(m_gcode_result->time_statistics.modes.front().layers_times);
|
auto print_mode_stat = m_gcode_result->time_statistics.modes.front();
|
||||||
|
m_layers_slider->SetLayersTimes(print_mode_stat.layers_times, print_mode_stat.time);
|
||||||
|
}
|
||||||
|
|
||||||
// Suggest the auto color change, if model looks like sign
|
// Suggest the auto color change, if model looks like sign
|
||||||
if (m_layers_slider->IsNewPrint())
|
if (m_layers_slider->IsNewPrint())
|
||||||
|
Loading…
Reference in New Issue
Block a user