mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-23 22:54:08 -06:00
Ramming config improvements to enable support for Prusa MMU3 (#9935)
* Ported ramming configuration improvements from prusa slicer: Hold cmd to move all values, more granular time settings and higher maximum values. * improve variable name, change space * Move the label under the ramming chart * Experimenting with values label for ramming chart * Fix the label position and make the background 20% transparent * update the way the multiline label is done * reorder commands --------- Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
This commit is contained in:
parent
b410154cb3
commit
686a9bd44a
24 changed files with 151 additions and 6 deletions
|
@ -8004,6 +8004,10 @@ msgstr ""
|
|||
msgid "Ramming line spacing"
|
||||
msgstr ""
|
||||
|
||||
#. TRN: The placeholder expands to Ctrl or Cmd (on macOS).
|
||||
msgid "For constant flow rate, hold %1% while dragging."
|
||||
msgstr ""
|
||||
|
||||
msgid "Auto-Calc"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -8761,6 +8761,10 @@ msgstr "Ample de la línia de moldejat de punta( ramming )"
|
|||
msgid "Ramming line spacing"
|
||||
msgstr "Espai entre línies de Moldejat de punta( Ramming )"
|
||||
|
||||
#. TRN: The placeholder expands to Ctrl or Cmd (on macOS).
|
||||
msgid "For constant flow rate, hold %1% while dragging."
|
||||
msgstr ""
|
||||
|
||||
msgid "Auto-Calc"
|
||||
msgstr "Calcular Automàticament"
|
||||
|
||||
|
|
|
@ -8494,6 +8494,10 @@ msgstr "Šířka linky při rapidní extruzi"
|
|||
msgid "Ramming line spacing"
|
||||
msgstr "Rozestup linek při rapidní extruzi"
|
||||
|
||||
#. TRN: The placeholder expands to Ctrl or Cmd (on macOS).
|
||||
msgid "For constant flow rate, hold %1% while dragging."
|
||||
msgstr "Pro konstantní průtok stiskněte %1% při přetahování."
|
||||
|
||||
msgid "Auto-Calc"
|
||||
msgstr "Automatický výpočet"
|
||||
|
||||
|
|
|
@ -8840,6 +8840,10 @@ msgstr "Ramming-Linienbreite"
|
|||
msgid "Ramming line spacing"
|
||||
msgstr "Ramming-Linienabstand"
|
||||
|
||||
#. TRN: The placeholder expands to Ctrl or Cmd (on macOS).
|
||||
msgid "For constant flow rate, hold %1% while dragging."
|
||||
msgstr "Um eine konstante Flussrate zu erhalten, halten Sie %1% gedrückt, während Sie ziehen."
|
||||
|
||||
msgid "Auto-Calc"
|
||||
msgstr "Automatisch berechnen"
|
||||
|
||||
|
|
|
@ -8174,6 +8174,10 @@ msgstr ""
|
|||
msgid "Ramming line spacing"
|
||||
msgstr ""
|
||||
|
||||
#. TRN: The placeholder expands to Ctrl or Cmd (on macOS).
|
||||
msgid "For constant flow rate, hold %1% while dragging."
|
||||
msgstr ""
|
||||
|
||||
msgid "Auto-Calc"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -8773,6 +8773,10 @@ msgstr "Ancho de línea de Moldeado de Extremo"
|
|||
msgid "Ramming line spacing"
|
||||
msgstr "Separación de línea de moldeado de extremo"
|
||||
|
||||
#. TRN: The placeholder expands to Ctrl or Cmd (on macOS).
|
||||
msgid "For constant flow rate, hold %1% while dragging."
|
||||
msgstr "Para un flujo constante, mantén pulsado %1% mientras arrastras."
|
||||
|
||||
msgid "Auto-Calc"
|
||||
msgstr "Calculado automático"
|
||||
|
||||
|
|
|
@ -8868,6 +8868,10 @@ msgstr "Largeur de ligne du pilonnage"
|
|||
msgid "Ramming line spacing"
|
||||
msgstr "Espacement des lignes du pilonnage"
|
||||
|
||||
#. TRN: The placeholder expands to Ctrl or Cmd (on macOS).
|
||||
msgid "For constant flow rate, hold %1% while dragging."
|
||||
msgstr "Pour un débit constant, maintenez %1% tout en faisant glisser."
|
||||
|
||||
msgid "Auto-Calc"
|
||||
msgstr "Auto-Calc"
|
||||
|
||||
|
|
|
@ -8406,6 +8406,10 @@ msgstr "Tömörítési vonal szélessége"
|
|||
msgid "Ramming line spacing"
|
||||
msgstr "Tömörítési vonal térköze"
|
||||
|
||||
#. TRN: The placeholder expands to Ctrl or Cmd (on macOS).
|
||||
msgid "For constant flow rate, hold %1% while dragging."
|
||||
msgstr ""
|
||||
|
||||
msgid "Auto-Calc"
|
||||
msgstr "Automatikus számítás"
|
||||
|
||||
|
|
|
@ -8799,6 +8799,11 @@ msgstr "Larghezza linea di modellazione del filamento"
|
|||
msgid "Ramming line spacing"
|
||||
msgstr "Spaziatura tra linee di modellazione del filamento"
|
||||
|
||||
#. TRN: The placeholder expands to Ctrl or Cmd (on macOS).
|
||||
msgid "For constant flow rate, hold %1% while dragging."
|
||||
msgstr ""
|
||||
"Per ottenere un avanzamento costante, tieni premuto %1% mentre trascini."
|
||||
|
||||
msgid "Auto-Calc"
|
||||
msgstr "Calcolo automatico"
|
||||
|
||||
|
|
|
@ -8202,6 +8202,10 @@ msgstr "ラミング線幅"
|
|||
msgid "Ramming line spacing"
|
||||
msgstr "ラミング線間距離"
|
||||
|
||||
#. TRN: The placeholder expands to Ctrl or Cmd (on macOS).
|
||||
msgid "For constant flow rate, hold %1% while dragging."
|
||||
msgstr "流量を一定にするには、%1% を押したままドラッグします。"
|
||||
|
||||
msgid "Auto-Calc"
|
||||
msgstr "自動計算"
|
||||
|
||||
|
|
|
@ -8474,6 +8474,10 @@ msgstr "채워넣기 선 너비"
|
|||
msgid "Ramming line spacing"
|
||||
msgstr "채워넣기 선 간격"
|
||||
|
||||
#. TRN: The placeholder expands to Ctrl or Cmd (on macOS).
|
||||
msgid "For constant flow rate, hold %1% while dragging."
|
||||
msgstr ""
|
||||
|
||||
msgid "Auto-Calc"
|
||||
msgstr "자동 계산"
|
||||
|
||||
|
|
|
@ -8738,6 +8738,10 @@ msgstr "Įspaudimo linijos plotis"
|
|||
msgid "Ramming line spacing"
|
||||
msgstr "Įspaudimo tarpai tarp linijų"
|
||||
|
||||
#. TRN: The placeholder expands to Ctrl or Cmd (on macOS).
|
||||
msgid "For constant flow rate, hold %1% while dragging."
|
||||
msgstr ""
|
||||
|
||||
msgid "Auto-Calc"
|
||||
msgstr "Automatinis skaičiavimas"
|
||||
|
||||
|
|
|
@ -8555,6 +8555,10 @@ msgstr "Lijnbreedte voor ramming"
|
|||
msgid "Ramming line spacing"
|
||||
msgstr "Lijnafstand voor ramming"
|
||||
|
||||
#. TRN: The placeholder expands to Ctrl or Cmd (on macOS).
|
||||
msgid "For constant flow rate, hold %1% while dragging."
|
||||
msgstr ""
|
||||
|
||||
msgid "Auto-Calc"
|
||||
msgstr "Automatisch berekenen"
|
||||
|
||||
|
|
|
@ -8719,6 +8719,10 @@ msgstr "Szerokość linii wyciskania"
|
|||
msgid "Ramming line spacing"
|
||||
msgstr "Odstęp linii wyciskania"
|
||||
|
||||
#. TRN: The placeholder expands to Ctrl or Cmd (on macOS).
|
||||
msgid "For constant flow rate, hold %1% while dragging."
|
||||
msgstr "Aby uzyskać stałe natężenie przepływu, przytrzymaj %1% podczas przeciągania."
|
||||
|
||||
msgid "Auto-Calc"
|
||||
msgstr "Auto-obliczenia"
|
||||
|
||||
|
|
|
@ -8750,6 +8750,10 @@ msgstr "Largura da linha de moldeamento"
|
|||
msgid "Ramming line spacing"
|
||||
msgstr "Espaçamento da linha de moldeamento"
|
||||
|
||||
#. TRN: The placeholder expands to Ctrl or Cmd (on macOS).
|
||||
msgid "For constant flow rate, hold %1% while dragging."
|
||||
msgstr ""
|
||||
|
||||
msgid "Auto-Calc"
|
||||
msgstr "Auto-Calc"
|
||||
|
||||
|
|
|
@ -8845,6 +8845,10 @@ msgstr "Ширина линии при рэмминге"
|
|||
msgid "Ramming line spacing"
|
||||
msgstr "Расстояние между линиями при рэмминге"
|
||||
|
||||
#. TRN: The placeholder expands to Ctrl or Cmd (on macOS).
|
||||
msgid "For constant flow rate, hold %1% while dragging."
|
||||
msgstr "Для постоянного объёмного расхода удерживайте нажатой клавишу %1% при перетаскивании."
|
||||
|
||||
msgid "Auto-Calc"
|
||||
msgstr "Авторасчёт"
|
||||
|
||||
|
|
|
@ -8400,6 +8400,10 @@ msgstr ""
|
|||
msgid "Ramming line spacing"
|
||||
msgstr ""
|
||||
|
||||
#. TRN: The placeholder expands to Ctrl or Cmd (on macOS).
|
||||
msgid "For constant flow rate, hold %1% while dragging."
|
||||
msgstr ""
|
||||
|
||||
msgid "Auto-Calc"
|
||||
msgstr "Autoberäkna"
|
||||
|
||||
|
|
|
@ -8660,6 +8660,10 @@ msgstr "Sıkıştırma hattı genişliği"
|
|||
msgid "Ramming line spacing"
|
||||
msgstr "Sıkıştırma hattı aralığı"
|
||||
|
||||
#. TRN: The placeholder expands to Ctrl or Cmd (on macOS).
|
||||
msgid "For constant flow rate, hold %1% while dragging."
|
||||
msgstr ""
|
||||
|
||||
msgid "Auto-Calc"
|
||||
msgstr "Otomatik Hesaplama"
|
||||
|
||||
|
|
|
@ -8744,6 +8744,10 @@ msgstr "Ширина ліній раммінгу"
|
|||
msgid "Ramming line spacing"
|
||||
msgstr "Проміжки між лініями раммінгу"
|
||||
|
||||
#. TRN: The placeholder expands to Ctrl or Cmd (on macOS).
|
||||
msgid "For constant flow rate, hold %1% while dragging."
|
||||
msgstr ""
|
||||
|
||||
msgid "Auto-Calc"
|
||||
msgstr "Автокалькулятор"
|
||||
|
||||
|
|
|
@ -8263,6 +8263,10 @@ msgstr "尖端成型线宽"
|
|||
msgid "Ramming line spacing"
|
||||
msgstr "尖端成型线间距"
|
||||
|
||||
#. TRN: The placeholder expands to Ctrl or Cmd (on macOS).
|
||||
msgid "For constant flow rate, hold %1% while dragging."
|
||||
msgstr ""
|
||||
|
||||
msgid "Auto-Calc"
|
||||
msgstr "自动计算"
|
||||
|
||||
|
|
|
@ -8299,6 +8299,10 @@ msgstr "尖端成型線寬"
|
|||
msgid "Ramming line spacing"
|
||||
msgstr "尖端成型線間距"
|
||||
|
||||
#. TRN: The placeholder expands to Ctrl or Cmd (on macOS).
|
||||
msgid "For constant flow rate, hold %1% while dragging."
|
||||
msgstr ""
|
||||
|
||||
msgid "Auto-Calc"
|
||||
msgstr "自動計算"
|
||||
|
||||
|
|
|
@ -95,6 +95,40 @@ void Chart::draw() {
|
|||
label = _(L("Volumetric speed")) + " (" + _("mm³/s") + ")";
|
||||
dc.GetTextExtent(label,&text_width,&text_height);
|
||||
dc.DrawRotatedText(label,wxPoint(0,0.5*(m_rect.GetBottom()+m_rect.GetTop())+text_width/2.f),90);
|
||||
|
||||
// draw a label with the value above each button
|
||||
for (auto& button : m_buttons) {
|
||||
if (!visible_area.Contains(button.get_pos()))
|
||||
continue;
|
||||
|
||||
wxPoint button_screen_pos = math_to_screen(button.get_pos());
|
||||
wxString value_label = wxString().Format(wxT("%.1f"), button.get_pos().m_y);
|
||||
|
||||
int label_width, label_height;
|
||||
dc.GetTextExtent(value_label, &label_width, &label_height);
|
||||
|
||||
const int padding = 4;
|
||||
// Calculate label x position
|
||||
int label_x = button_screen_pos.x - (label_width/2); // centered with button
|
||||
label_x = std::clamp(label_x, m_rect.GetLeft() + (padding*2), m_rect.GetRight() - label_width - (padding*2)); // adjust to fit within chart bounds
|
||||
|
||||
// Calculate label y position
|
||||
int label_y = button_screen_pos.y - (side/2) - label_height - (padding*2); // above button
|
||||
if (label_y - (padding*2) < m_rect.GetTop()) { // move below the button if there isn't enough space
|
||||
label_y = button_screen_pos.y + (side/2) + (padding*2);
|
||||
}
|
||||
|
||||
// Draw label background
|
||||
dc.SetPen(wxPen(StateColor::darkModeColorFor(wxColour("#DBDBDB")), 1));
|
||||
wxColour bg_color = StateColor::darkModeColorFor(wxColour("#F1F1F1"));
|
||||
dc.SetBrush(wxBrush(wxColour(bg_color.Red(), bg_color.Green(), bg_color.Blue(), 204))); // 80% opacity
|
||||
wxRect label_rect(label_x - padding, label_y - padding, label_width + (2*padding), label_height + (2*padding));
|
||||
dc.DrawRoundedRectangle(label_rect, 2);
|
||||
|
||||
// Draw the label text
|
||||
dc.SetTextForeground(StateColor::darkModeColorFor("#363636"));
|
||||
dc.DrawText(value_label, wxPoint(label_x, label_y));
|
||||
}
|
||||
}
|
||||
|
||||
void Chart::mouse_right_button_clicked(wxMouseEvent& event) {
|
||||
|
@ -111,6 +145,7 @@ void Chart::mouse_right_button_clicked(wxMouseEvent& event) {
|
|||
|
||||
|
||||
void Chart::mouse_clicked(wxMouseEvent& event) {
|
||||
m_uniform = (event.GetModifiers() == wxMOD_CONTROL);
|
||||
wxPoint point = event.GetPosition();
|
||||
int button_index = which_button_is_clicked(point);
|
||||
if ( button_index != -1) {
|
||||
|
@ -136,7 +171,15 @@ void Chart::mouse_moved(wxMouseEvent& event) {
|
|||
}
|
||||
int delta_x = pos.x - m_previous_mouse.x;
|
||||
int delta_y = pos.y - m_previous_mouse.y;
|
||||
m_dragged->move(fixed_x?0:double(delta_x)/m_rect.GetWidth() * visible_area.m_width,-double(delta_y)/m_rect.GetHeight() * visible_area.m_height);
|
||||
|
||||
double new_y = m_dragged->get_pos().m_y - double(delta_y) / m_rect.GetHeight() * visible_area.m_height;
|
||||
|
||||
if (m_uniform)
|
||||
for (ButtonToDrag& b : m_buttons)
|
||||
b.move(fixed_x?0:double(delta_x)/m_rect.GetWidth() * visible_area.m_width, new_y - b.get_pos().m_y);
|
||||
else
|
||||
m_dragged->move(fixed_x?0:double(delta_x)/m_rect.GetWidth() * visible_area.m_width, new_y - m_dragged->get_pos().m_y);
|
||||
|
||||
m_previous_mouse = pos;
|
||||
recalculate_line();
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ public:
|
|||
SetBackgroundColour(*wxWHITE);
|
||||
SetBackgroundStyle(wxBG_STYLE_PAINT);
|
||||
m_rect = wxRect(wxPoint(legend_side,0),rect.GetSize()-wxSize(legend_side,legend_side));
|
||||
visible_area = wxRect2DDouble(0.0, 0.0, sampling*ramming_speed_size, 20.);
|
||||
visible_area = wxRect2DDouble(0.0, 0.0, sampling*ramming_speed_size, 60.);
|
||||
m_buttons.clear();
|
||||
if (initial_buttons.size()>0)
|
||||
for (const auto& pair : initial_buttons)
|
||||
|
@ -30,7 +30,7 @@ public:
|
|||
recalculate_line();
|
||||
}
|
||||
void set_xy_range(float x,float y) {
|
||||
x = int(x/0.5) * 0.5;
|
||||
x = int(x/0.25) * 0.25;
|
||||
if (x>=0) visible_area.SetRight(x);
|
||||
if (y>=0) visible_area.SetBottom(y);
|
||||
recalculate_line();
|
||||
|
@ -116,6 +116,7 @@ private:
|
|||
wxRect2DDouble visible_area;
|
||||
ButtonToDrag* m_dragged = nullptr;
|
||||
float m_total_volume = 0.f;
|
||||
bool m_uniform = false;
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "I18N.hpp"
|
||||
#include "GUI_App.hpp"
|
||||
#include "MsgDialog.hpp"
|
||||
#include "format.hpp"
|
||||
#include "libslic3r/Color.hpp"
|
||||
#include "Widgets/Button.hpp"
|
||||
#include "Widgets/StaticLine.hpp"
|
||||
|
@ -14,6 +15,7 @@
|
|||
#include "slic3r/Utils/ColorSpaceConvert.hpp"
|
||||
#include "MainFrame.hpp"
|
||||
#include "libslic3r/Config.hpp"
|
||||
#include "Widgets/Label.hpp"
|
||||
|
||||
using namespace Slic3r;
|
||||
using namespace Slic3r::GUI;
|
||||
|
@ -115,10 +117,24 @@ RammingPanel::RammingPanel(wxWindow* parent, const std::string& parameters)
|
|||
update_ui(m_chart);
|
||||
sizer_chart->Add(m_chart, 0, wxALL, 5);
|
||||
|
||||
m_widget_time = new SpinInput(this, wxEmptyString, "ms" , wxDefaultPosition, wxSize(scale(120), -1), wxSP_ARROW_KEYS, 0 , 5000 , 3000, 500);
|
||||
// Create help text for constant flow rate dragging
|
||||
std::string ctrl_str = GUI::shortkey_ctrl_prefix();
|
||||
if (!ctrl_str.empty() && ctrl_str.back() == '+')
|
||||
ctrl_str.pop_back(); // Remove trailing '+'
|
||||
wxString message = format_wxstr(_L("For constant flow rate, hold %1% while dragging."), ctrl_str);
|
||||
Label* label = new Label(this, wxEmptyString);
|
||||
wxClientDC dc(label);
|
||||
wxString multiline_message;
|
||||
label->SetFont(Label::Body_14);
|
||||
label->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#363636")));
|
||||
label->split_lines(dc, scale(470), message, multiline_message);
|
||||
label->SetLabel(multiline_message);
|
||||
sizer_chart->Add(label, 0, wxEXPAND | wxALL, 5);
|
||||
|
||||
m_widget_time = new SpinInput(this, wxEmptyString, "ms" , wxDefaultPosition, wxSize(scale(120), -1), wxSP_ARROW_KEYS, 0 , 5000 , 3000, 250);
|
||||
m_widget_volume = new SpinInput(this, wxEmptyString, "mm³", wxDefaultPosition, wxSize(scale(120), -1), wxSP_ARROW_KEYS, 0 , 10000, 0 );
|
||||
m_widget_ramming_line_width_multiplicator = new SpinInput(this, wxEmptyString, "%" , wxDefaultPosition, wxSize(scale(120), -1), wxSP_ARROW_KEYS, 10, 200 , 100 );
|
||||
m_widget_ramming_step_multiplicator = new SpinInput(this, wxEmptyString, "%" , wxDefaultPosition, wxSize(scale(120), -1), wxSP_ARROW_KEYS, 10, 200 , 100 );
|
||||
m_widget_ramming_line_width_multiplicator = new SpinInput(this, wxEmptyString, "%" , wxDefaultPosition, wxSize(scale(120), -1), wxSP_ARROW_KEYS, 10, 300 , 100 );
|
||||
m_widget_ramming_step_multiplicator = new SpinInput(this, wxEmptyString, "%" , wxDefaultPosition, wxSize(scale(120), -1), wxSP_ARROW_KEYS, 10, 300 , 100 );
|
||||
|
||||
auto add_title = [this, sizer_param](wxString label){
|
||||
auto title = new StaticLine(this, 0, label);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue