Ruler for DoubleSlider: Added estimated print time
This commit is contained in:
parent
cb844a4034
commit
feffb66085
5 changed files with 19 additions and 7 deletions
|
@ -1858,7 +1858,7 @@ void GCode::process_layer(
|
||||||
std::string gcode;
|
std::string gcode;
|
||||||
|
|
||||||
// add tag for processor
|
// add tag for processor
|
||||||
gcode += "; " + GCodeProcessor::Layer_Change_Tag + "\n";
|
gcode += ";" + GCodeProcessor::Layer_Change_Tag + "\n";
|
||||||
// export layer z
|
// export layer z
|
||||||
char buf[64];
|
char buf[64];
|
||||||
sprintf(buf, ";Z:%g\n", print_z);
|
sprintf(buf, ";Z:%g\n", print_z);
|
||||||
|
|
|
@ -393,7 +393,7 @@ void GCodeProcessor::TimeProcessor::post_process(const std::string& filename)
|
||||||
auto is_temporary_decoration = [](const std::string& gcode_line) {
|
auto is_temporary_decoration = [](const std::string& gcode_line) {
|
||||||
// remove trailing '\n'
|
// remove trailing '\n'
|
||||||
std::string line = gcode_line.substr(0, gcode_line.length() - 1);
|
std::string line = gcode_line.substr(0, gcode_line.length() - 1);
|
||||||
if (line == "; " + Layer_Change_Tag)
|
if (line == ";" + Layer_Change_Tag)
|
||||||
return true;
|
return true;
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -380,6 +380,13 @@ void Control::SetTicksValues(const Info& custom_gcode_per_print_z)
|
||||||
Update();
|
Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Control::SetLayersTimes(const std::vector<float>& layers_times)
|
||||||
|
{
|
||||||
|
m_layers_times = layers_times;
|
||||||
|
for (int i = 1; i < m_layers_times.size(); i++)
|
||||||
|
m_layers_times[i] += m_layers_times[i - 1];
|
||||||
|
}
|
||||||
|
|
||||||
void Control::SetDrawMode(bool is_sla_print, bool is_sequential_print)
|
void Control::SetDrawMode(bool is_sla_print, bool is_sequential_print)
|
||||||
{
|
{
|
||||||
m_draw_mode = is_sla_print ? dmSlaPrint :
|
m_draw_mode = is_sla_print ? dmSlaPrint :
|
||||||
|
@ -603,9 +610,11 @@ wxString Control::get_label(int tick, LabelType label_type/* = ltHeightWithLayer
|
||||||
if (m_draw_mode == dmSequentialGCodeView)
|
if (m_draw_mode == dmSequentialGCodeView)
|
||||||
return wxString::Format("%d", static_cast<unsigned int>(m_values[value]));
|
return wxString::Format("%d", static_cast<unsigned int>(m_values[value]));
|
||||||
else {
|
else {
|
||||||
if (label_type == ltEstimatedTime)
|
if (label_type == ltEstimatedTime) {
|
||||||
// ysFIXME get estimated time for the current tick
|
if (m_values.size() != m_layers_times.size())
|
||||||
return "time";
|
return "time";
|
||||||
|
return Slic3r::short_time(get_time_dhms(m_layers_times[value]));
|
||||||
|
}
|
||||||
wxString str = m_values.empty() ?
|
wxString str = m_values.empty() ?
|
||||||
wxString::Format("%.*f", 2, m_label_koef * value) :
|
wxString::Format("%.*f", 2, m_label_koef * value) :
|
||||||
wxString::Format("%.*f", 2, m_values[value]);
|
wxString::Format("%.*f", 2, m_values[value]);
|
||||||
|
|
|
@ -222,8 +222,9 @@ public:
|
||||||
void SetSliderValues(const std::vector<double>& values);
|
void SetSliderValues(const std::vector<double>& values);
|
||||||
void ChangeOneLayerLock();
|
void ChangeOneLayerLock();
|
||||||
|
|
||||||
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 SetDrawMode(bool is_sla_print, bool is_sequential_print);
|
void SetDrawMode(bool is_sla_print, bool is_sequential_print);
|
||||||
#if ENABLE_GCODE_VIEWER
|
#if ENABLE_GCODE_VIEWER
|
||||||
|
@ -401,6 +402,7 @@ private:
|
||||||
|
|
||||||
std::vector<double> m_values;
|
std::vector<double> m_values;
|
||||||
TickCodeInfo m_ticks;
|
TickCodeInfo m_ticks;
|
||||||
|
std::vector<float> m_layers_times;
|
||||||
|
|
||||||
std::vector<std::string> m_extruder_colors;
|
std::vector<std::string> m_extruder_colors;
|
||||||
|
|
||||||
|
|
|
@ -999,6 +999,7 @@ void Preview::update_layers_slider(const std::vector<double>& layers_z, bool kee
|
||||||
}
|
}
|
||||||
m_layers_slider->SetSelectionSpan(idx_low, idx_high);
|
m_layers_slider->SetSelectionSpan(idx_low, idx_high);
|
||||||
m_layers_slider->SetTicksValues(ticks_info_from_model);
|
m_layers_slider->SetTicksValues(ticks_info_from_model);
|
||||||
|
m_layers_slider->SetLayersTimes(m_gcode_result->time_statistics.modes[0].layers_times);
|
||||||
|
|
||||||
bool sla_print_technology = wxGetApp().plater()->printer_technology() == ptSLA;
|
bool sla_print_technology = wxGetApp().plater()->printer_technology() == ptSLA;
|
||||||
bool sequential_print = wxGetApp().preset_bundle->prints.get_edited_preset().config.opt_bool("complete_objects");
|
bool sequential_print = wxGetApp().preset_bundle->prints.get_edited_preset().config.opt_bool("complete_objects");
|
||||||
|
|
Loading…
Reference in a new issue