From 556d716919ecbd63974be4ff93833fe69704812f Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 4 Oct 2024 18:52:34 -0500 Subject: [PATCH 1/3] =?UTF-8?q?=E2=9C=A8=20Rename=20@=20strings=20=5FA=20?= =?UTF-8?q?=3D>=20=5FN?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Marlin/src/lcd/language/language_cz.h | 2 +- Marlin/src/lcd/language/language_de.h | 4 ++-- Marlin/src/lcd/language/language_en.h | 6 +++--- Marlin/src/lcd/language/language_es.h | 2 +- Marlin/src/lcd/language/language_fr.h | 4 ++-- Marlin/src/lcd/language/language_fr_na.h | 4 ++-- Marlin/src/lcd/language/language_gl.h | 2 +- Marlin/src/lcd/language/language_hu.h | 4 ++-- Marlin/src/lcd/language/language_it.h | 4 ++-- Marlin/src/lcd/language/language_pl.h | 2 +- Marlin/src/lcd/language/language_pt_br.h | 2 +- Marlin/src/lcd/language/language_ro.h | 2 +- Marlin/src/lcd/language/language_ru.h | 4 ++-- Marlin/src/lcd/language/language_sk.h | 4 ++-- Marlin/src/lcd/language/language_sv.h | 2 +- Marlin/src/lcd/language/language_tr.h | 4 ++-- Marlin/src/lcd/language/language_uk.h | 4 ++-- Marlin/src/lcd/language/language_zh_CN.h | 2 +- Marlin/src/lcd/language/language_zh_TW.h | 2 +- Marlin/src/lcd/menu/menu_configuration.cpp | 8 ++++---- Marlin/src/lcd/menu/menu_motion.cpp | 2 +- 21 files changed, 35 insertions(+), 35 deletions(-) diff --git a/Marlin/src/lcd/language/language_cz.h b/Marlin/src/lcd/language/language_cz.h index 2ee9451d09..8884792c51 100644 --- a/Marlin/src/lcd/language/language_cz.h +++ b/Marlin/src/lcd/language/language_cz.h @@ -126,7 +126,7 @@ namespace LanguageNarrow_cz { LSTR MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Zrcadlení"); LSTR MSG_IDEX_MODE_FULL_CTRL = _UxGT("Plná kontrola"); LSTR MSG_HOTEND_OFFSET_Z = _UxGT("2. tryska Z"); - LSTR MSG_HOTEND_OFFSET_A = _UxGT("2. tryska @"); + LSTR MSG_HOTEND_OFFSET_N = _UxGT("2. tryska @"); LSTR MSG_UBL_DOING_G29 = _UxGT("Provádím G29"); LSTR MSG_UBL_TOOLS = _UxGT("UBL nástroje"); diff --git a/Marlin/src/lcd/language/language_de.h b/Marlin/src/lcd/language/language_de.h index f33d7fb097..7c3a5ebfd8 100644 --- a/Marlin/src/lcd/language/language_de.h +++ b/Marlin/src/lcd/language/language_de.h @@ -61,7 +61,7 @@ namespace LanguageNarrow_de { LSTR MSG_PROGRESS_BAR_TEST = _UxGT("Statusbalken-Test"); LSTR MSG_HOMING = _UxGT("Homing"); LSTR MSG_AUTO_HOME = _UxGT("Auto Home"); - LSTR MSG_AUTO_HOME_A = _UxGT("Home @"); + LSTR MSG_AUTO_HOME_N = _UxGT("Home @"); LSTR MSG_AUTO_HOME_X = _UxGT("Home X"); LSTR MSG_AUTO_HOME_Y = _UxGT("Home Y"); LSTR MSG_AUTO_HOME_Z = _UxGT("Home Z"); @@ -174,7 +174,7 @@ namespace LanguageNarrow_de { LSTR MSG_IDEX_MODE_FULL_CTRL = _UxGT("vollstä. Kontrolle"); LSTR MSG_IDEX_DUPE_GAP = _UxGT("X-Lücke duplizieren"); LSTR MSG_HOTEND_OFFSET_Z = _UxGT("2. Düse Z"); - LSTR MSG_HOTEND_OFFSET_A = _UxGT("2. Düse @"); + LSTR MSG_HOTEND_OFFSET_N = _UxGT("2. Düse @"); LSTR MSG_UBL_DOING_G29 = _UxGT("G29 ausführen"); LSTR MSG_UBL_TOOLS = _UxGT("UBL-Werkzeuge"); LSTR MSG_LCD_TILTING_MESH = _UxGT("Berührungspunkt"); diff --git a/Marlin/src/lcd/language/language_en.h b/Marlin/src/lcd/language/language_en.h index 1ac1218c81..1bd5c63149 100644 --- a/Marlin/src/lcd/language/language_en.h +++ b/Marlin/src/lcd/language/language_en.h @@ -101,7 +101,7 @@ namespace LanguageNarrow_en { LSTR MSG_HOMING = _UxGT("Homing"); LSTR MSG_AUTO_HOME = _UxGT("Auto Home"); LSTR MSG_HOME_ALL = _UxGT("Home All"); - LSTR MSG_AUTO_HOME_A = _UxGT("Home @"); + LSTR MSG_AUTO_HOME_N = _UxGT("Home @"); LSTR MSG_AUTO_HOME_X = _UxGT("Home X"); LSTR MSG_AUTO_HOME_Y = _UxGT("Home Y"); LSTR MSG_AUTO_HOME_Z = _UxGT("Home Z"); @@ -227,7 +227,7 @@ namespace LanguageNarrow_en { LSTR MSG_IDEX_MODE_FULL_CTRL = _UxGT("Full Control"); LSTR MSG_IDEX_DUPE_GAP = _UxGT("Duplicate X-Gap"); LSTR MSG_HOTEND_OFFSET_Z = _UxGT("2nd Nozzle Z"); - LSTR MSG_HOTEND_OFFSET_A = _UxGT("2nd Nozzle @"); + LSTR MSG_HOTEND_OFFSET_N = _UxGT("2nd Nozzle @"); LSTR MSG_UBL_DOING_G29 = _UxGT("Doing G29"); LSTR MSG_UBL_TOOLS = _UxGT("UBL Tools"); LSTR MSG_LCD_TILTING_MESH = _UxGT("Tilting Point"); @@ -640,7 +640,7 @@ namespace LanguageNarrow_en { LSTR MSG_BABYSTEP_PROBE_Z = _UxGT("Babystep Probe Z"); LSTR MSG_ZPROBE_MARGIN = _UxGT("Probe Margin"); LSTR MSG_ZOFFSET = _UxGT("Z Offset"); - LSTR MSG_Z_FEED_RATE = _UxGT("Z Feed Rate"); + LSTR MSG_Z_FEED_RATE = _UxGT("Z Feedrate"); LSTR MSG_ENABLE_HS_MODE = _UxGT("Enable HS mode"); LSTR MSG_MOVE_NOZZLE_TO_BED = _UxGT("Move Nozzle to Bed"); LSTR MSG_BABYSTEP_X = _UxGT("Babystep X"); diff --git a/Marlin/src/lcd/language/language_es.h b/Marlin/src/lcd/language/language_es.h index 2441cb98b2..e3ca432e78 100644 --- a/Marlin/src/lcd/language/language_es.h +++ b/Marlin/src/lcd/language/language_es.h @@ -125,7 +125,7 @@ namespace LanguageNarrow_es { LSTR MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Copia Reflejada"); LSTR MSG_IDEX_MODE_FULL_CTRL = _UxGT("Control Total"); LSTR MSG_HOTEND_OFFSET_Z = _UxGT("2ª Fusor Z"); - LSTR MSG_HOTEND_OFFSET_A = _UxGT("2ª Fusor @"); + LSTR MSG_HOTEND_OFFSET_N = _UxGT("2ª Fusor @"); LSTR MSG_UBL_DOING_G29 = _UxGT("Hacer G29"); LSTR MSG_UBL_TOOLS = _UxGT("Herramientas UBL"); LSTR MSG_LCD_TILTING_MESH = _UxGT("Punto de inclinación"); diff --git a/Marlin/src/lcd/language/language_fr.h b/Marlin/src/lcd/language/language_fr.h index 11821f6876..dae5a32c9a 100644 --- a/Marlin/src/lcd/language/language_fr.h +++ b/Marlin/src/lcd/language/language_fr.h @@ -58,7 +58,7 @@ namespace LanguageNarrow_fr { LSTR MSG_PROGRESS_BAR_TEST = _UxGT("Test barre progress."); LSTR MSG_HOMING = _UxGT("Origine"); LSTR MSG_AUTO_HOME = _UxGT("Origine auto"); - LSTR MSG_AUTO_HOME_A = _UxGT("Origine @ auto"); + LSTR MSG_AUTO_HOME_N = _UxGT("Origine @ auto"); LSTR MSG_AUTO_HOME_X = _UxGT("Origine X auto"); LSTR MSG_AUTO_HOME_Y = _UxGT("Origine Y auto"); LSTR MSG_AUTO_HOME_Z = _UxGT("Origine Z auto"); @@ -130,7 +130,7 @@ namespace LanguageNarrow_fr { LSTR MSG_IDEX_MODE_FULL_CTRL = _UxGT("Contrôle complet"); LSTR MSG_OFFSETS_MENU = _UxGT("Offsets Outil"); LSTR MSG_HOTEND_OFFSET_Z = _UxGT("Buse 2 Z"); - LSTR MSG_HOTEND_OFFSET_A = _UxGT("Buse 2 @"); + LSTR MSG_HOTEND_OFFSET_N = _UxGT("Buse 2 @"); LSTR MSG_G26_HEATING_BED = _UxGT("G26: Chauffage du lit"); LSTR MSG_G26_HEATING_NOZZLE = _UxGT("Buse en chauffe..."); LSTR MSG_G26_MANUAL_PRIME = _UxGT("Amorce manuelle..."); diff --git a/Marlin/src/lcd/language/language_fr_na.h b/Marlin/src/lcd/language/language_fr_na.h index 307d1562e4..c158cd32c8 100644 --- a/Marlin/src/lcd/language/language_fr_na.h +++ b/Marlin/src/lcd/language/language_fr_na.h @@ -58,7 +58,7 @@ namespace LanguageNarrow_fr_na { LSTR MSG_PROGRESS_BAR_TEST = _UxGT("Test barre progress."); LSTR MSG_HOMING = _UxGT("Origine"); LSTR MSG_AUTO_HOME = _UxGT("Origine auto"); - LSTR MSG_AUTO_HOME_A = _UxGT("Origine @ auto"); + LSTR MSG_AUTO_HOME_N = _UxGT("Origine @ auto"); LSTR MSG_AUTO_HOME_X = _UxGT("Origine X auto"); LSTR MSG_AUTO_HOME_Y = _UxGT("Origine Y auto"); LSTR MSG_AUTO_HOME_Z = _UxGT("Origine Z auto"); @@ -130,7 +130,7 @@ namespace LanguageNarrow_fr_na { LSTR MSG_IDEX_MODE_FULL_CTRL = _UxGT("Controle complet"); LSTR MSG_OFFSETS_MENU = _UxGT("Offsets Outil"); LSTR MSG_HOTEND_OFFSET_Z = _UxGT("Buse 2 Z"); - LSTR MSG_HOTEND_OFFSET_A = _UxGT("Buse 2 @"); + LSTR MSG_HOTEND_OFFSET_N = _UxGT("Buse 2 @"); LSTR MSG_G26_HEATING_BED = _UxGT("G26: Chauffage du lit"); LSTR MSG_G26_HEATING_NOZZLE = _UxGT("Buse en chauffe..."); LSTR MSG_G26_MANUAL_PRIME = _UxGT("Amorce manuelle..."); diff --git a/Marlin/src/lcd/language/language_gl.h b/Marlin/src/lcd/language/language_gl.h index 09e32e6828..cc334ea19c 100644 --- a/Marlin/src/lcd/language/language_gl.h +++ b/Marlin/src/lcd/language/language_gl.h @@ -122,7 +122,7 @@ namespace LanguageNarrow_gl { LSTR MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Copia Espello"); LSTR MSG_IDEX_MODE_FULL_CTRL = _UxGT("Control Total"); LSTR MSG_HOTEND_OFFSET_Z = _UxGT("2º Bico Z"); - LSTR MSG_HOTEND_OFFSET_A = _UxGT("2º Bico @"); + LSTR MSG_HOTEND_OFFSET_N = _UxGT("2º Bico @"); LSTR MSG_UBL_DOING_G29 = _UxGT("Executando G29"); LSTR MSG_UBL_TOOLS = _UxGT("Ferramentas UBL"); LSTR MSG_LCD_TILTING_MESH = _UxGT("Punto de inclinación"); diff --git a/Marlin/src/lcd/language/language_hu.h b/Marlin/src/lcd/language/language_hu.h index 0eb2a5b003..7ca5b39ff2 100644 --- a/Marlin/src/lcd/language/language_hu.h +++ b/Marlin/src/lcd/language/language_hu.h @@ -62,7 +62,7 @@ namespace LanguageNarrow_hu { LSTR MSG_DEBUG_MENU = _UxGT("Hiba Menü"); LSTR MSG_PROGRESS_BAR_TEST = _UxGT("Haladás sáv teszt"); LSTR MSG_AUTO_HOME = _UxGT("X-Y-Z auto kezdöpont"); - LSTR MSG_AUTO_HOME_A = _UxGT("Kezdö @"); + LSTR MSG_AUTO_HOME_N = _UxGT("Kezdö @"); LSTR MSG_AUTO_HOME_X = _UxGT("X kezdöpont"); LSTR MSG_AUTO_HOME_Y = _UxGT("Y kezdöpont"); LSTR MSG_AUTO_HOME_Z = _UxGT("Z kezdöpont"); @@ -152,7 +152,7 @@ namespace LanguageNarrow_hu { LSTR MSG_IDEX_MODE_FULL_CTRL = _UxGT("Teljes felügyelet"); LSTR MSG_IDEX_DUPE_GAP = _UxGT("X-hézag másolása"); LSTR MSG_HOTEND_OFFSET_Z = _UxGT("2. fej Z"); - LSTR MSG_HOTEND_OFFSET_A = _UxGT("2. fej @"); + LSTR MSG_HOTEND_OFFSET_N = _UxGT("2. fej @"); LSTR MSG_UBL_DOING_G29 = _UxGT("Szintezz! G29"); LSTR MSG_UBL_TOOLS = _UxGT("UBL eszköz"); LSTR MSG_LCD_TILTING_MESH = _UxGT("Döntési pont"); diff --git a/Marlin/src/lcd/language/language_it.h b/Marlin/src/lcd/language/language_it.h index 1678837ff3..64f9500808 100644 --- a/Marlin/src/lcd/language/language_it.h +++ b/Marlin/src/lcd/language/language_it.h @@ -77,7 +77,7 @@ namespace LanguageNarrow_it { LSTR MSG_Z_PROBE = _UxGT("Sonda Z"); LSTR MSG_HOMING = _UxGT("Azzeramento"); LSTR MSG_AUTO_HOME = _UxGT("Auto home"); - LSTR MSG_AUTO_HOME_A = _UxGT("Home @"); + LSTR MSG_AUTO_HOME_N = _UxGT("Home @"); LSTR MSG_AUTO_HOME_X = _UxGT("Home X"); LSTR MSG_AUTO_HOME_Y = _UxGT("Home Y"); LSTR MSG_AUTO_HOME_Z = _UxGT("Home Z"); @@ -194,7 +194,7 @@ namespace LanguageNarrow_it { LSTR MSG_IDEX_MODE_FULL_CTRL = _UxGT("Pieno controllo"); LSTR MSG_IDEX_DUPE_GAP = _UxGT("X-Gap-X duplicato"); LSTR MSG_HOTEND_OFFSET_Z = _UxGT("2° ugello Z"); - LSTR MSG_HOTEND_OFFSET_A = _UxGT("2° ugello @"); + LSTR MSG_HOTEND_OFFSET_N = _UxGT("2° ugello @"); LSTR MSG_UBL_DOING_G29 = _UxGT("G29 in corso"); LSTR MSG_UBL_TOOLS = _UxGT("Strumenti UBL"); LSTR MSG_LCD_TILTING_MESH = _UxGT("Punto inclinaz."); diff --git a/Marlin/src/lcd/language/language_pl.h b/Marlin/src/lcd/language/language_pl.h index b7bda0f584..9244be4021 100644 --- a/Marlin/src/lcd/language/language_pl.h +++ b/Marlin/src/lcd/language/language_pl.h @@ -135,7 +135,7 @@ namespace LanguageNarrow_pl { LSTR MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Kopia lustrzana"); LSTR MSG_IDEX_MODE_FULL_CTRL = _UxGT("Pełne sterowanie"); LSTR MSG_HOTEND_OFFSET_Z = _UxGT("2ga dysza Z"); - LSTR MSG_HOTEND_OFFSET_A = _UxGT("2ga dysza @"); + LSTR MSG_HOTEND_OFFSET_N = _UxGT("2ga dysza @"); LSTR MSG_UBL_DOING_G29 = _UxGT("Wykonywanie G29"); LSTR MSG_UBL_TOOLS = _UxGT("Narzędzia UBL"); LSTR MSG_LCD_TILTING_MESH = _UxGT("Punkt pochylenia"); diff --git a/Marlin/src/lcd/language/language_pt_br.h b/Marlin/src/lcd/language/language_pt_br.h index 23c49a5a55..3281b897d8 100644 --- a/Marlin/src/lcd/language/language_pt_br.h +++ b/Marlin/src/lcd/language/language_pt_br.h @@ -112,7 +112,7 @@ namespace LanguageNarrow_pt_br { LSTR MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Cópia espelhada"); LSTR MSG_IDEX_MODE_FULL_CTRL = _UxGT("Controle Total"); LSTR MSG_HOTEND_OFFSET_Z = _UxGT("2o bico Z"); - LSTR MSG_HOTEND_OFFSET_A = _UxGT("2o bico @"); + LSTR MSG_HOTEND_OFFSET_N = _UxGT("2o bico @"); LSTR MSG_UBL_DOING_G29 = _UxGT("Executando G29"); LSTR MSG_UBL_TOOLS = _UxGT("Ferramentas UBL"); LSTR MSG_UBL_MANUAL_MESH = _UxGT("Fazer malha manual"); diff --git a/Marlin/src/lcd/language/language_ro.h b/Marlin/src/lcd/language/language_ro.h index 47336a204f..02311aa963 100644 --- a/Marlin/src/lcd/language/language_ro.h +++ b/Marlin/src/lcd/language/language_ro.h @@ -121,7 +121,7 @@ namespace LanguageNarrow_ro { LSTR MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Mirrored Copy"); LSTR MSG_IDEX_MODE_FULL_CTRL = _UxGT("Full Control"); LSTR MSG_HOTEND_OFFSET_Z = _UxGT("2nd Nozzle Z"); - LSTR MSG_HOTEND_OFFSET_A = _UxGT("2nd Nozzle @"); + LSTR MSG_HOTEND_OFFSET_N = _UxGT("2nd Nozzle @"); LSTR MSG_UBL_DOING_G29 = _UxGT("Doing G29"); LSTR MSG_UBL_TOOLS = _UxGT("UBL Tools"); LSTR MSG_LCD_TILTING_MESH = _UxGT("Tilting Point"); diff --git a/Marlin/src/lcd/language/language_ru.h b/Marlin/src/lcd/language/language_ru.h index 6f5d61f4f7..81a3a04794 100644 --- a/Marlin/src/lcd/language/language_ru.h +++ b/Marlin/src/lcd/language/language_ru.h @@ -58,7 +58,7 @@ namespace LanguageNarrow_ru { LSTR MSG_DEBUG_MENU = _UxGT("Меню отладки"); LSTR MSG_PROGRESS_BAR_TEST = _UxGT("Тест индикатора"); LSTR MSG_AUTO_HOME = _UxGT("Парковка XYZ"); - LSTR MSG_AUTO_HOME_A = _UxGT("Парковка @"); + LSTR MSG_AUTO_HOME_N = _UxGT("Парковка @"); LSTR MSG_AUTO_HOME_X = _UxGT("Парковка X"); LSTR MSG_AUTO_HOME_Y = _UxGT("Парковка Y"); LSTR MSG_AUTO_HOME_Z = _UxGT("Парковка Z"); @@ -151,7 +151,7 @@ namespace LanguageNarrow_ru { LSTR MSG_IDEX_DUPE_GAP = _UxGT("Дублировать X-зазор"); LSTR MSG_HOTEND_OFFSET_Z = _UxGT("2-е сопло Z"); - LSTR MSG_HOTEND_OFFSET_A = _UxGT("2-е сопло @"); + LSTR MSG_HOTEND_OFFSET_N = _UxGT("2-е сопло @"); LSTR MSG_UBL_DOING_G29 = _UxGT("Выполняем G29"); LSTR MSG_UBL_TOOLS = _UxGT("Инструменты UBL"); diff --git a/Marlin/src/lcd/language/language_sk.h b/Marlin/src/lcd/language/language_sk.h index eaff99589b..c174bfcaf8 100644 --- a/Marlin/src/lcd/language/language_sk.h +++ b/Marlin/src/lcd/language/language_sk.h @@ -74,7 +74,7 @@ namespace LanguageNarrow_sk { LSTR MSG_PROGRESS_BAR_TEST = _UxGT("Test uk. priebehu"); LSTR MSG_HOMING = _UxGT("Parkovanie"); LSTR MSG_AUTO_HOME = _UxGT("Domovská pozícia"); - LSTR MSG_AUTO_HOME_A = _UxGT("Domov os @"); + LSTR MSG_AUTO_HOME_N = _UxGT("Domov os @"); LSTR MSG_AUTO_HOME_X = _UxGT("Domov os X"); LSTR MSG_AUTO_HOME_Y = _UxGT("Domov os Y"); LSTR MSG_AUTO_HOME_Z = _UxGT("Domov os Z"); @@ -190,7 +190,7 @@ namespace LanguageNarrow_sk { LSTR MSG_IDEX_MODE_FULL_CTRL = _UxGT("Plná kontrola"); LSTR MSG_IDEX_DUPE_GAP = _UxGT("Duplik. medz.-X"); LSTR MSG_HOTEND_OFFSET_Z = _UxGT("2. tryska Z"); - LSTR MSG_HOTEND_OFFSET_A = _UxGT("2. tryska @"); + LSTR MSG_HOTEND_OFFSET_N = _UxGT("2. tryska @"); LSTR MSG_UBL_DOING_G29 = _UxGT("Vykonávam G29"); LSTR MSG_UBL_TOOLS = _UxGT("Nástroje UBL"); LSTR MSG_LCD_TILTING_MESH = _UxGT("Vyrovnávam bod"); diff --git a/Marlin/src/lcd/language/language_sv.h b/Marlin/src/lcd/language/language_sv.h index 287a4dc190..0af09d61fe 100644 --- a/Marlin/src/lcd/language/language_sv.h +++ b/Marlin/src/lcd/language/language_sv.h @@ -144,7 +144,7 @@ namespace LanguageNarrow_sv { LSTR MSG_IDEX_MODE_FULL_CTRL = _UxGT("Full Kontroll"); LSTR MSG_IDEX_DUPE_GAP = _UxGT("Duplicera X-Avstånd"); LSTR MSG_HOTEND_OFFSET_Z = _UxGT("2:a Munstycke Z"); - LSTR MSG_HOTEND_OFFSET_A = _UxGT("2:a Munstycke @"); + LSTR MSG_HOTEND_OFFSET_N = _UxGT("2:a Munstycke @"); LSTR MSG_UBL_DOING_G29 = _UxGT("Utför G29"); LSTR MSG_UBL_TOOLS = _UxGT("UBL Verktyg"); LSTR MSG_LCD_TILTING_MESH = _UxGT("Lutningspunkt"); diff --git a/Marlin/src/lcd/language/language_tr.h b/Marlin/src/lcd/language/language_tr.h index 37ed299573..05dd1f5888 100644 --- a/Marlin/src/lcd/language/language_tr.h +++ b/Marlin/src/lcd/language/language_tr.h @@ -76,7 +76,7 @@ namespace LanguageNarrow_tr { LSTR MSG_Z_PROBE = _UxGT("Z Probe"); LSTR MSG_HOMING = _UxGT("Sıfırlanıyor"); LSTR MSG_AUTO_HOME = _UxGT("Eksenleri Sıfırla"); - LSTR MSG_AUTO_HOME_A = _UxGT("@ Sıfırla"); + LSTR MSG_AUTO_HOME_N = _UxGT("@ Sıfırla"); LSTR MSG_AUTO_HOME_X = _UxGT("X Sıfırla"); LSTR MSG_AUTO_HOME_Y = _UxGT("Y Sıfırla"); LSTR MSG_AUTO_HOME_Z = _UxGT("Z Sıfırla"); @@ -193,7 +193,7 @@ namespace LanguageNarrow_tr { LSTR MSG_IDEX_MODE_FULL_CTRL = _UxGT("Tam Kontrol"); LSTR MSG_IDEX_DUPE_GAP = _UxGT("Yinelenen X-Boşluğu"); LSTR MSG_HOTEND_OFFSET_Z = _UxGT("2. nozul Z"); - LSTR MSG_HOTEND_OFFSET_A = _UxGT("2. nozul @"); + LSTR MSG_HOTEND_OFFSET_N = _UxGT("2. nozul @"); LSTR MSG_UBL_DOING_G29 = _UxGT("G29 Çalışıyor"); LSTR MSG_UBL_TOOLS = _UxGT("UBL Araçları"); LSTR MSG_LCD_TILTING_MESH = _UxGT("Eğim Noktası"); diff --git a/Marlin/src/lcd/language/language_uk.h b/Marlin/src/lcd/language/language_uk.h index 01ec6161a9..5aafbf8610 100644 --- a/Marlin/src/lcd/language/language_uk.h +++ b/Marlin/src/lcd/language/language_uk.h @@ -59,7 +59,7 @@ namespace LanguageNarrow_uk { LSTR MSG_DEBUG_MENU = _UxGT("Меню Debug"); LSTR MSG_PROGRESS_BAR_TEST = _UxGT("Тест лінії прогр."); LSTR MSG_AUTO_HOME = _UxGT("Авто паркування"); - LSTR MSG_AUTO_HOME_A = _UxGT("Паркування @"); + LSTR MSG_AUTO_HOME_N = _UxGT("Паркування @"); LSTR MSG_AUTO_HOME_X = _UxGT("Паркування X"); LSTR MSG_AUTO_HOME_Y = _UxGT("Паркування Y"); LSTR MSG_AUTO_HOME_Z = _UxGT("Паркування Z"); @@ -149,7 +149,7 @@ namespace LanguageNarrow_uk { LSTR MSG_IDEX_DUPE_GAP = _UxGT("Дублюв. X-проміжок"); LSTR MSG_HOTEND_OFFSET_Z = _UxGT("Друге сопло Z"); - LSTR MSG_HOTEND_OFFSET_A = _UxGT("Друге сопло @"); + LSTR MSG_HOTEND_OFFSET_N = _UxGT("Друге сопло @"); LSTR MSG_UBL_DOING_G29 = _UxGT("Виконується G29"); LSTR MSG_UBL_TOOLS = _UxGT("Інструменти UBL"); diff --git a/Marlin/src/lcd/language/language_zh_CN.h b/Marlin/src/lcd/language/language_zh_CN.h index f4f7d8539c..c52e59d826 100644 --- a/Marlin/src/lcd/language/language_zh_CN.h +++ b/Marlin/src/lcd/language/language_zh_CN.h @@ -125,7 +125,7 @@ namespace LanguageNarrow_zh_CN { LSTR MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("镜像复制"); LSTR MSG_IDEX_MODE_FULL_CTRL = _UxGT("完全控制"); LSTR MSG_HOTEND_OFFSET_Z = _UxGT("第二喷头是Z"); - LSTR MSG_HOTEND_OFFSET_A = _UxGT("第二喷头是@"); + LSTR MSG_HOTEND_OFFSET_N = _UxGT("第二喷头是@"); LSTR MSG_UBL_DOING_G29 = _UxGT("执行G29"); // "Doing G29" LSTR MSG_UBL_TOOLS = _UxGT("UBL工具"); // "UBL Tools" LSTR MSG_LCD_TILTING_MESH = _UxGT("倾斜點"); diff --git a/Marlin/src/lcd/language/language_zh_TW.h b/Marlin/src/lcd/language/language_zh_TW.h index b8c8443e65..fe4c78cf5b 100644 --- a/Marlin/src/lcd/language/language_zh_TW.h +++ b/Marlin/src/lcd/language/language_zh_TW.h @@ -117,7 +117,7 @@ namespace LanguageNarrow_zh_TW { LSTR MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("Mirrored Copy"); LSTR MSG_IDEX_MODE_FULL_CTRL = _UxGT("Full Control"); LSTR MSG_HOTEND_OFFSET_Z = _UxGT("2nd Nozzle Z"); - LSTR MSG_HOTEND_OFFSET_A = _UxGT("2nd Nozzle @"); + LSTR MSG_HOTEND_OFFSET_N = _UxGT("2nd Nozzle @"); LSTR MSG_UBL_DOING_G29 = _UxGT("執行G29"); // "Doing G29" LSTR MSG_UBL_TOOLS = _UxGT("UBL工具"); // "UBL Tools" LSTR MSG_LCD_TILTING_MESH = _UxGT("傾斜點"); // "Tilting Point" diff --git a/Marlin/src/lcd/menu/menu_configuration.cpp b/Marlin/src/lcd/menu/menu_configuration.cpp index dd3a3016a1..e8db64ac90 100644 --- a/Marlin/src/lcd/menu/menu_configuration.cpp +++ b/Marlin/src/lcd/menu/menu_configuration.cpp @@ -241,12 +241,12 @@ void menu_advanced_settings(); START_MENU(); BACK_ITEM(MSG_CONFIGURATION); #if ENABLED(DUAL_X_CARRIAGE) - EDIT_ITEM_FAST_N(float42_52, X_AXIS, MSG_HOTEND_OFFSET_A, &hotend_offset[1].x, float(X2_HOME_POS - 25), float(X2_HOME_POS + 25), _recalc_offsets); + EDIT_ITEM_FAST_N(float42_52, X_AXIS, MSG_HOTEND_OFFSET_N, &hotend_offset[1].x, float(X2_HOME_POS - 25), float(X2_HOME_POS + 25), _recalc_offsets); #else - EDIT_ITEM_FAST_N(float42_52, X_AXIS, MSG_HOTEND_OFFSET_A, &hotend_offset[1].x, -99.0f, 99.0f, _recalc_offsets); + EDIT_ITEM_FAST_N(float42_52, X_AXIS, MSG_HOTEND_OFFSET_N, &hotend_offset[1].x, -99.0f, 99.0f, _recalc_offsets); #endif - EDIT_ITEM_FAST_N(float42_52, Y_AXIS, MSG_HOTEND_OFFSET_A, &hotend_offset[1].y, -99.0f, 99.0f, _recalc_offsets); - EDIT_ITEM_FAST_N(float42_52, Z_AXIS, MSG_HOTEND_OFFSET_A, &hotend_offset[1].z, -10.0f, 10.0f, _recalc_offsets); + EDIT_ITEM_FAST_N(float42_52, Y_AXIS, MSG_HOTEND_OFFSET_N, &hotend_offset[1].y, -99.0f, 99.0f, _recalc_offsets); + EDIT_ITEM_FAST_N(float42_52, Z_AXIS, MSG_HOTEND_OFFSET_N, &hotend_offset[1].z, -10.0f, 10.0f, _recalc_offsets); #if ENABLED(EEPROM_SETTINGS) ACTION_ITEM(MSG_STORE_EEPROM, ui.store_settings); #endif diff --git a/Marlin/src/lcd/menu/menu_motion.cpp b/Marlin/src/lcd/menu/menu_motion.cpp index b13ee11c29..4aa7d78711 100644 --- a/Marlin/src/lcd/menu/menu_motion.cpp +++ b/Marlin/src/lcd/menu/menu_motion.cpp @@ -291,7 +291,7 @@ void menu_move() { END_MENU(); } -#define _HOME_ITEM(N) GCODES_ITEM_N(N##_AXIS, MSG_AUTO_HOME_A, F("G28" STR_##N)); +#define _HOME_ITEM(N) GCODES_ITEM_N(N##_AXIS, MSG_AUTO_HOME_N, F("G28" STR_##N)); #if ENABLED(INDIVIDUAL_AXIS_HOMING_SUBMENU) // From 30f5dd339d291dcf7685eda7332f7321c9d2a5c8 Mon Sep 17 00:00:00 2001 From: thinkyhead Date: Sat, 5 Oct 2024 00:38:56 +0000 Subject: [PATCH 2/3] [cron] Bump distribution date (2024-10-05) --- Marlin/Version.h | 2 +- Marlin/src/inc/Version.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/Version.h b/Marlin/Version.h index 773be1deba..c5ff3bdc27 100644 --- a/Marlin/Version.h +++ b/Marlin/Version.h @@ -41,7 +41,7 @@ * here we define this default string as the date where the latest release * version was tagged. */ -//#define STRING_DISTRIBUTION_DATE "2024-10-04" +//#define STRING_DISTRIBUTION_DATE "2024-10-05" /** * Defines a generic printer name to be output to the LCD after booting Marlin. diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h index defd1a4b88..9b94d51018 100644 --- a/Marlin/src/inc/Version.h +++ b/Marlin/src/inc/Version.h @@ -42,7 +42,7 @@ * version was tagged. */ #ifndef STRING_DISTRIBUTION_DATE - #define STRING_DISTRIBUTION_DATE "2024-10-04" + #define STRING_DISTRIBUTION_DATE "2024-10-05" #endif /** From f5d5b0a8818f5deb03cf71d684757bae9eb1ddd1 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 4 Oct 2024 20:41:47 -0500 Subject: [PATCH 3/3] =?UTF-8?q?=E2=9C=A8=20EDITABLE=5FHOMING=5FFEEDRATE=20?= =?UTF-8?q?/=20M210=20(#27456)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Marlin/Configuration.h | 6 +- Marlin/src/core/language.h | 53 ++++++----- Marlin/src/gcode/calibrate/G28.cpp | 11 ++- Marlin/src/gcode/config/M210.cpp | 100 +++++++++++++++++++++ Marlin/src/gcode/gcode.cpp | 9 +- Marlin/src/gcode/gcode.h | 12 ++- Marlin/src/gcode/parser.h | 3 + Marlin/src/lcd/language/language_en.h | 3 + Marlin/src/lcd/menu/menu_configuration.cpp | 41 ++++++++- Marlin/src/module/motion.cpp | 3 + Marlin/src/module/motion.h | 7 +- Marlin/src/module/settings.cpp | 33 +++++++ buildroot/tests/mega1280 | 2 +- ini/features.ini | 1 + 14 files changed, 248 insertions(+), 36 deletions(-) create mode 100644 Marlin/src/gcode/config/M210.cpp diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index c993bf8003..c51b0ed5ef 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -1610,7 +1610,8 @@ // with NOZZLE_AS_PROBE this can be negative for a wider probing area. #define PROBING_MARGIN 10 -// X and Y axis travel speed (mm/min) between probes +// X and Y axis travel speed (mm/min) between probes. +// Leave undefined to use the average of the current XY homing feedrate. #define XY_PROBE_FEEDRATE (133*60) // Feedrate (mm/min) for the first approach when double-probing (MULTIPLE_PROBING == 2) @@ -2304,6 +2305,9 @@ // Homing speeds (linear=mm/min, rotational=°/min) #define HOMING_FEEDRATE_MM_M { (50*60), (50*60), (4*60) } +// Edit homing feedrates with M210 and MarlinUI menu items +//#define EDITABLE_HOMING_FEEDRATE + // Validate that endstops are triggered on homing moves #define VALIDATE_HOMING_ENDSTOPS diff --git a/Marlin/src/core/language.h b/Marlin/src/core/language.h index 2736a7833e..e641a1431b 100644 --- a/Marlin/src/core/language.h +++ b/Marlin/src/core/language.h @@ -290,6 +290,7 @@ #define STR_MAX_ACCELERATION "Max Acceleration (units/s2)" #define STR_MAX_FEEDRATES "Max feedrates (units/s)" #define STR_ACCELERATION_P_R_T "Acceleration (units/s2) (P R T)" +#define STR_HOMING_FEEDRATE "Homing Feedrate" #define STR_TOOL_CHANGING "Tool-changing" #define STR_HOTEND_OFFSETS "Hotend offsets" #define STR_SERVO_ANGLES "Servo Angles" @@ -323,6 +324,37 @@ #define STR_USER_THERMISTORS "User thermistors" #define STR_DELAYED_POWEROFF "Delayed poweroff" +// +// General axis names +// +#if HAS_X_AXIS + #define AXIS1_NAME 'X' +#endif +#if HAS_Y_AXIS + #define AXIS2_NAME 'Y' +#endif +#if HAS_Z_AXIS + #define AXIS3_NAME 'Z' +#endif +#define STR_X "X" +#define STR_Y "Y" +#define STR_Z "Z" +#define STR_E "E" +#if IS_KINEMATIC + #define STR_A "A" + #define STR_B "B" + #define STR_C "C" +#else + #define STR_A STR_X + #define STR_B STR_Y + #define STR_C STR_Z +#endif +#define STR_X2 STR_A "2" +#define STR_Y2 STR_B "2" +#define STR_Z2 STR_C "2" +#define STR_Z3 STR_C "3" +#define STR_Z4 STR_C "4" + // // Endstop Names used by Endstops::report_states // @@ -354,29 +386,8 @@ #define STR_Z_PROBE "z_probe" #define STR_PROBE_EN "probe_en" #define STR_FILAMENT "filament" - #define STR_CALIBRATION "calibration" -// General axis names -#define STR_X "X" -#define STR_Y "Y" -#define STR_Z "Z" -#define STR_E "E" -#if IS_KINEMATIC - #define STR_A "A" - #define STR_B "B" - #define STR_C "C" -#else - #define STR_A "X" - #define STR_B "Y" - #define STR_C "Z" -#endif -#define STR_X2 "X2" -#define STR_Y2 "Y2" -#define STR_Z2 "Z2" -#define STR_Z3 "Z3" -#define STR_Z4 "Z4" - // Extra Axis and Endstop Names #if HAS_I_AXIS #if AXIS4_NAME == 'A' diff --git a/Marlin/src/gcode/calibrate/G28.cpp b/Marlin/src/gcode/calibrate/G28.cpp index 03fd2c80ed..ac90756ded 100644 --- a/Marlin/src/gcode/calibrate/G28.cpp +++ b/Marlin/src/gcode/calibrate/G28.cpp @@ -322,9 +322,9 @@ void GcodeSuite::G28() { #else // !DELTA && !AXEL_TPARA - #define _UNSAFE(A) TERN0(Z_SAFE_HOMING, homeZ && axis_should_home(_AXIS(A))) + #define _UNSAFE(A) TERN0(Z_SAFE_HOMING, homeZZ && axis_should_home(_AXIS(A))) - const bool homeZ = TERN0(HAS_Z_AXIS, parser.seen_test('Z')), + const bool homeZZ = TERN0(HAS_Z_AXIS, parser.seen_test('Z')), NUM_AXIS_LIST_( // Other axes should be homed before Z safe-homing needX = _UNSAFE(X), needY = _UNSAFE(Y), needZ = false, // UNUSED needI = _UNSAFE(I), needJ = _UNSAFE(J), needK = _UNSAFE(K), @@ -333,7 +333,7 @@ void GcodeSuite::G28() { NUM_AXIS_LIST_( // Home each axis if needed or flagged homeX = needX || parser.seen_test('X'), homeY = needY || parser.seen_test('Y'), - homeZZ = homeZ, + homeZ = homeZZ, homeI = needI || parser.seen_test(AXIS4_NAME), homeJ = needJ || parser.seen_test(AXIS5_NAME), homeK = needK || parser.seen_test(AXIS6_NAME), homeU = needU || parser.seen_test(AXIS7_NAME), homeV = needV || parser.seen_test(AXIS8_NAME), homeW = needW || parser.seen_test(AXIS9_NAME) @@ -355,7 +355,7 @@ void GcodeSuite::G28() { #if HAS_Z_AXIS - UNUSED(needZ); UNUSED(homeZZ); + UNUSED(needZ); // Z may home first, e.g., when homing away from the bed. // This is also permitted when homing with a Z endstop. @@ -439,8 +439,7 @@ void GcodeSuite::G28() { #if HAS_Y_AXIS // Home Y (after X) - if (DISABLED(HOME_Y_BEFORE_X) && doY) - homeaxis(Y_AXIS); + if (DISABLED(HOME_Y_BEFORE_X) && doY) homeaxis(Y_AXIS); #endif #if ALL(FOAMCUTTER_XYUV, HAS_J_AXIS) diff --git a/Marlin/src/gcode/config/M210.cpp b/Marlin/src/gcode/config/M210.cpp new file mode 100644 index 0000000000..99c750bd25 --- /dev/null +++ b/Marlin/src/gcode/config/M210.cpp @@ -0,0 +1,100 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2024 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "../../inc/MarlinConfigPre.h" + +#if ENABLED(EDITABLE_HOMING_FEEDRATE) + +#include "../gcode.h" +#include "../../module/motion.h" + +/** + * M210 - Set homing feedrate for one or more axes + * in current units (in/mm) per minute + * + * X[feedrate] Set X axis homing feedrate + * Y[feedrate] Set Y axis homing feedrate + * Z[feedrate] Set Z axis homing feedrate + * A[feedrate] Set I axis homing feedrate (configured axis name applies) + * B[feedrate] Set J axis homing feedrate (configured axis name applies) + * C[feedrate] Set K axis homing feedrate (configured axis name applies) + * U[feedrate] Set U axis homing feedrate (configured axis name applies) + * V[feedrate] Set V axis homing feedrate (configured axis name applies) + * W[feedrate] Set W axis homing feedrate (configured axis name applies) + * + * With no arguments, report the current offsets. + */ +void GcodeSuite::M210() { + if (!parser.seen_any()) + return M210_report(); + + #if HAS_X_AXIS + if (parser.floatval('X') > 0) homing_feedrate_mm_m.x = parser.value_axis_units(X_AXIS); + #endif + #if HAS_Y_AXIS + if (parser.floatval('Y') > 0) homing_feedrate_mm_m.y = parser.value_axis_units(Y_AXIS); + #endif + #if HAS_Z_AXIS + if (parser.floatval('Z') > 0) homing_feedrate_mm_m.z = parser.value_axis_units(Z_AXIS); + #endif + #if HAS_I_AXIS + if (parser.floatval(AXIS4_NAME) > 0) homing_feedrate_mm_m.i = parser.value_axis_units(I_AXIS); + #endif + #if HAS_J_AXIS + if (parser.floatval(AXIS5_NAME) > 0) homing_feedrate_mm_m.j = parser.value_axis_units(J_AXIS); + #endif + #if HAS_K_AXIS + if (parser.floatval(AXIS6_NAME) > 0) homing_feedrate_mm_m.k = parser.value_axis_units(K_AXIS); + #endif + #if HAS_U_AXIS + if (parser.floatval(AXIS7_NAME) > 0) homing_feedrate_mm_m.u = parser.value_axis_units(U_AXIS); + #endif + #if HAS_V_AXIS + if (parser.floatval(AXIS8_NAME) > 0) homing_feedrate_mm_m.v = parser.value_axis_units(V_AXIS); + #endif + #if HAS_W_AXIS + if (parser.floatval(AXIS9_NAME) > 0) homing_feedrate_mm_m.w = parser.value_axis_units(W_AXIS); + #endif +} + +void GcodeSuite::M210_report(const bool forReplay/*=true*/) { + TERN_(MARLIN_SMALL_BUILD, return); + + report_heading_etc(forReplay, F(STR_HOMING_FEEDRATE)); + + SERIAL_ECHOPGM(" M210"); + SERIAL_ECHOLNPGM_P( + LIST_N(DOUBLE(NUM_AXES) + , SP_X_STR, X_AXIS_UNIT(homing_feedrate_mm_m.x) + , SP_Y_STR, Y_AXIS_UNIT(homing_feedrate_mm_m.y) + , SP_Z_STR, Z_AXIS_UNIT(homing_feedrate_mm_m.z) + , SP_I_STR, I_AXIS_UNIT(homing_feedrate_mm_m.i) + , SP_J_STR, J_AXIS_UNIT(homing_feedrate_mm_m.j) + , SP_K_STR, K_AXIS_UNIT(homing_feedrate_mm_m.k) + , SP_U_STR, U_AXIS_UNIT(homing_feedrate_mm_m.u) + , SP_V_STR, V_AXIS_UNIT(homing_feedrate_mm_m.v) + , SP_W_STR, W_AXIS_UNIT(homing_feedrate_mm_m.w) + ) + ); +} + +#endif // EDITABLE_HOMING_FEEDRATE diff --git a/Marlin/src/gcode/gcode.cpp b/Marlin/src/gcode/gcode.cpp index 1ccb10753c..3212575255 100644 --- a/Marlin/src/gcode/gcode.cpp +++ b/Marlin/src/gcode/gcode.cpp @@ -200,9 +200,10 @@ void GcodeSuite::get_destination_from_command() { #endif if (parser.floatval('F') > 0) { - feedrate_mm_s = parser.value_feedrate(); + const float fr_mm_min = parser.value_linear_units(); + feedrate_mm_s = MMM_TO_MMS(fr_mm_min); // Update the cutter feed rate for use by M4 I set inline moves. - TERN_(LASER_FEATURE, cutter.feedrate_mm_m = MMS_TO_MMM(feedrate_mm_s)); + TERN_(LASER_FEATURE, cutter.feedrate_mm_m = fr_mm_min); } #if ALL(PRINTCOUNTER, HAS_EXTRUDERS) @@ -742,6 +743,10 @@ void GcodeSuite::process_parsed_command(const bool no_ok/*=false*/) { #endif #endif + #if ENABLED(EDITABLE_HOMING_FEEDRATE) + case 210: M210(); break; // M210: Set the homing feedrate + #endif + #if HAS_SOFTWARE_ENDSTOPS case 211: M211(); break; // M211: Enable, Disable, and/or Report software endstops #endif diff --git a/Marlin/src/gcode/gcode.h b/Marlin/src/gcode/gcode.h index 421dda9aec..2f72564997 100644 --- a/Marlin/src/gcode/gcode.h +++ b/Marlin/src/gcode/gcode.h @@ -195,6 +195,7 @@ * M208 - Set Recover (unretract) Additional (!) Length: S and Feedrate: F. (Requires FWRETRACT) * M209 - Turn Automatic Retract Detection on/off: S<0|1> (For slicers that don't support G10/11). (Requires FWRETRACT_AUTORETRACT) Every normal extrude-only move will be classified as retract depending on the direction. + * M210 - Set or Report the homing feedrate (Requires EDITABLE_HOMING_FEEDRATE) * M211 - Enable, Disable, and/or Report software endstops: S<0|1> (Requires MIN_SOFTWARE_ENDSTOPS or MAX_SOFTWARE_ENDSTOPS) * M217 - Set filament swap parameters: "M217 S P R". (Requires SINGLENOZZLE) * M218 - Set/get a tool offset: "M218 T X Y". (Requires 2 or more extruders) @@ -897,8 +898,15 @@ private: #endif #endif - static void M211(); - static void M211_report(const bool forReplay=true); + #if ENABLED(EDITABLE_HOMING_FEEDRATE) + static void M210(); + static void M210_report(const bool forReplay=true); + #endif + + #if HAS_SOFTWARE_ENDSTOPS + static void M211(); + static void M211_report(const bool forReplay=true); + #endif #if HAS_MULTI_EXTRUDER static void M217(); diff --git a/Marlin/src/gcode/parser.h b/Marlin/src/gcode/parser.h index 51ecaf15e9..9423b2380c 100644 --- a/Marlin/src/gcode/parser.h +++ b/Marlin/src/gcode/parser.h @@ -347,6 +347,9 @@ public: #define LINEAR_UNIT(V) parser.mm_to_linear_unit(V) #define VOLUMETRIC_UNIT(V) parser.mm_to_volumetric_unit(V) + #define X_AXIS_UNIT LINEAR_UNIT + #define Y_AXIS_UNIT LINEAR_UNIT + #define Z_AXIS_UNIT LINEAR_UNIT #define I_AXIS_UNIT(V) TERN(AXIS4_ROTATES, (V), LINEAR_UNIT(V)) #define J_AXIS_UNIT(V) TERN(AXIS5_ROTATES, (V), LINEAR_UNIT(V)) #define K_AXIS_UNIT(V) TERN(AXIS6_ROTATES, (V), LINEAR_UNIT(V)) diff --git a/Marlin/src/lcd/language/language_en.h b/Marlin/src/lcd/language/language_en.h index 1bd5c63149..ad83797a41 100644 --- a/Marlin/src/lcd/language/language_en.h +++ b/Marlin/src/lcd/language/language_en.h @@ -99,6 +99,8 @@ namespace LanguageNarrow_en { LSTR MSG_ENDSTOP_TEST = _UxGT("Endstop Test"); LSTR MSG_Z_PROBE = _UxGT("Z Probe"); LSTR MSG_HOMING = _UxGT("Homing"); + LSTR MSG_HOMING_FEEDRATE = _UxGT("Homing Feedrate"); + LSTR MSG_HOMING_FEEDRATE_N = _UxGT("@ Homing FR"); LSTR MSG_AUTO_HOME = _UxGT("Auto Home"); LSTR MSG_HOME_ALL = _UxGT("Home All"); LSTR MSG_AUTO_HOME_N = _UxGT("Home @"); @@ -1094,6 +1096,7 @@ namespace LanguageWide_en { LSTR MSG_INFO_PRINT_TIME = _UxGT("Print Time"); LSTR MSG_INFO_PRINT_LONGEST = _UxGT("Longest Job Time"); LSTR MSG_INFO_PRINT_FILAMENT = _UxGT("Extruded Total"); + LSTR MSG_HOMING_FEEDRATE_N = _UxGT("@ Homing Feedrate"); #endif } diff --git a/Marlin/src/lcd/menu/menu_configuration.cpp b/Marlin/src/lcd/menu/menu_configuration.cpp index e8db64ac90..d7eeab3cb3 100644 --- a/Marlin/src/lcd/menu/menu_configuration.cpp +++ b/Marlin/src/lcd/menu/menu_configuration.cpp @@ -395,7 +395,40 @@ void menu_advanced_settings(); END_MENU(); } -#endif +#endif // FWRETRACT + +#if ENABLED(EDITABLE_HOMING_FEEDRATE) + + #include "../../module/motion.h" + #include "../../module/planner.h" + #include "../../gcode/parser.h" + + // Edit homing feedrates in inches- or degrees- or mm-per-minute + void menu_homing_feedrate() { + START_MENU(); + BACK_ITEM(MSG_HOMING_FEEDRATE); + + #if ENABLED(MENUS_ALLOW_INCH_UNITS) + #define _EDIT_HOMING_FR(A) do{ \ + const float maxfr = MMS_TO_MMM(planner.settings.max_feedrate_mm_s[_AXIS(A)]); \ + editable.decimal = A##_AXIS_UNIT(homing_feedrate_mm_m.A); \ + EDIT_ITEM(float5, MSG_HOMING_FEEDRATE_N, &editable.decimal, \ + A##_AXIS_UNIT(10), A##_AXIS_UNIT(maxfr), []{ \ + homing_feedrate_mm_m.A = parser.axis_value_to_mm(_AXIS(A), editable.decimal); \ + }); \ + }while(0); + #else + #define _EDIT_HOMING_FR(A) do{ \ + EDIT_ITEM(float5, MSG_HOMING_FEEDRATE_N, &homing_feedrate_mm_m.A, 10, MMS_TO_MMM(planner.settings.max_feedrate_mm_s[_AXIS(A)])); \ + }while(0); + #endif + + MAIN_AXIS_MAP(_EDIT_HOMING_FR); + + END_MENU(); + } + +#endif // EDITABLE_HOMING_FEEDRATE #if HAS_PREHEAT && DISABLED(SLIM_LCD_MENUS) @@ -424,7 +457,7 @@ void menu_advanced_settings(); END_MENU(); } -#endif +#endif // HAS_PREHEAT && !SLIM_LCD_MENUS #if ENABLED(CUSTOM_MENU_CONFIG) @@ -623,6 +656,10 @@ void menu_configuration() { #endif #endif + #if ENABLED(EDITABLE_HOMING_FEEDRATE) + SUBMENU(MSG_HOMING_FEEDRATE, menu_homing_feedrate); + #endif + #if ENABLED(FWRETRACT) SUBMENU(MSG_RETRACT, menu_config_retract); #endif diff --git a/Marlin/src/module/motion.cpp b/Marlin/src/module/motion.cpp index af26cfff02..10be020680 100644 --- a/Marlin/src/module/motion.cpp +++ b/Marlin/src/module/motion.cpp @@ -146,6 +146,9 @@ xyze_pos_t destination; // {0} #endif feedRate_t feedrate_mm_s = MMM_TO_MMS(DEFAULT_FEEDRATE_MM_M); int16_t feedrate_percentage = 100; +#if ENABLED(EDITABLE_HOMING_FEEDRATE) + xyz_feedrate_t homing_feedrate_mm_m = HOMING_FEEDRATE_MM_M; +#endif // Cartesian conversion result goes here: xyz_pos_t cartes; diff --git a/Marlin/src/module/motion.h b/Marlin/src/module/motion.h index ef3a1026e0..6d3bfaed0d 100644 --- a/Marlin/src/module/motion.h +++ b/Marlin/src/module/motion.h @@ -79,7 +79,12 @@ extern xyz_pos_t cartes; * Feed rates are often configured with mm/m * but the planner and stepper like mm/s units. */ -constexpr xyz_feedrate_t homing_feedrate_mm_m = HOMING_FEEDRATE_MM_M; +#if ENABLED(EDITABLE_HOMING_FEEDRATE) + extern xyz_feedrate_t homing_feedrate_mm_m; +#else + constexpr xyz_feedrate_t homing_feedrate_mm_m = HOMING_FEEDRATE_MM_M; +#endif + FORCE_INLINE feedRate_t homing_feedrate(const AxisEnum a) { float v = TERN0(HAS_Z_AXIS, homing_feedrate_mm_m.z); #if DISABLED(DELTA) diff --git a/Marlin/src/module/settings.cpp b/Marlin/src/module/settings.cpp index a1dc52d989..fa7b5d1f13 100644 --- a/Marlin/src/module/settings.cpp +++ b/Marlin/src/module/settings.cpp @@ -462,6 +462,13 @@ typedef struct SettingsDataStruct { fwretract_settings_t fwretract_settings; // M207 S F Z W, M208 S F W R bool autoretract_enabled; // M209 S + // + // EDITABLE_HOMING_FEEDRATE + // + #if ENABLED(EDITABLE_HOMING_FEEDRATE) + xyz_feedrate_t homing_feedrate_mm_m; // M210 X Y Z I J K U V W + #endif + // // !NO_VOLUMETRIC // @@ -1333,6 +1340,14 @@ void MarlinSettings::postprocess() { EEPROM_WRITE(TERN(FWRETRACT_AUTORETRACT, fwretract.autoretract_enabled, autoretract_enabled)); } + // + // Homing Feedrate + // + #if ENABLED(EDITABLE_HOMING_FEEDRATE) + _FIELD_TEST(homing_feedrate_mm_m); + EEPROM_WRITE(homing_feedrate_mm_m); + #endif + // // Volumetric & Filament Size // @@ -2421,6 +2436,14 @@ void MarlinSettings::postprocess() { #endif } + // + // Homing Feedrate + // + #if ENABLED(EDITABLE_HOMING_FEEDRATE) + _FIELD_TEST(homing_feedrate_mm_m); + EEPROM_READ(homing_feedrate_mm_m); + #endif + // // Volumetric & Filament Size // @@ -3649,6 +3672,11 @@ void MarlinSettings::reset() { // TERN_(FWRETRACT, fwretract.reset()); + // + // Homing Feedrate + // + TERN_(EDITABLE_HOMING_FEEDRATE, homing_feedrate_mm_m = xyz_feedrate_t(HOMING_FEEDRATE_MM_M)); + // // Volumetric & Filament Size // @@ -4049,6 +4077,11 @@ void MarlinSettings::reset() { TERN_(FWRETRACT_AUTORETRACT, gcode.M209_report(forReplay)); #endif + // + // Homing Feedrate + // + TERN_(EDITABLE_HOMING_FEEDRATE, gcode.M210_report(forReplay)); + // // Probe Offset // diff --git a/buildroot/tests/mega1280 b/buildroot/tests/mega1280 index 1d65b5ebf3..1b1a8f86b7 100755 --- a/buildroot/tests/mega1280 +++ b/buildroot/tests/mega1280 @@ -19,7 +19,7 @@ restore_configs opt_set LCD_LANGUAGE an \ POWER_MONITOR_CURRENT_PIN 14 POWER_MONITOR_VOLTAGE_PIN 15 \ CLOSED_LOOP_ENABLE_PIN 44 CLOSED_LOOP_MOVE_COMPLETE_PIN 45 -opt_enable SPINDLE_FEATURE ULTIMAKERCONTROLLER LCD_BED_LEVELING \ +opt_enable SPINDLE_FEATURE ULTIMAKERCONTROLLER LCD_BED_LEVELING EDITABLE_HOMING_FEEDRATE \ EEPROM_SETTINGS EEPROM_BOOT_SILENT EEPROM_AUTO_INIT \ SENSORLESS_BACKOFF_MM HOMING_BACKOFF_POST_MM HOME_Y_BEFORE_X CODEPENDENT_XY_HOMING \ MESH_BED_LEVELING ENABLE_LEVELING_FADE_HEIGHT MESH_G28_REST_ORIGIN \ diff --git a/ini/features.ini b/ini/features.ini index 420ba8e131..c6a657e305 100644 --- a/ini/features.ini +++ b/ini/features.ini @@ -285,6 +285,7 @@ SKEW_CORRECTION_GCODE = build_src_filter=+ + PINS_DEBUGGING = build_src_filter=+ EDITABLE_STEPS_PER_UNIT = build_src_filter=+ +EDITABLE_HOMING_FEEDRATE = build_src_filter=+ HAS_MULTI_EXTRUDER = build_src_filter=+ HAS_HOTEND_OFFSET = build_src_filter=+ EDITABLE_SERVO_ANGLES = build_src_filter=+