[2.0.x] Apply feedrate to nozzle movement for kinematic machines (#8778)

2.0.x
Thomas Moore 7 years ago committed by Scott Lahteine
parent 5364b92c37
commit 786746404b

@ -55,6 +55,9 @@ enum AxisEnum {
#define LOOP_XYZ(VAR) LOOP_S_LE_N(VAR, X_AXIS, Z_AXIS)
#define LOOP_XYZE(VAR) LOOP_S_LE_N(VAR, X_AXIS, E_AXIS)
#define LOOP_XYZE_N(VAR) LOOP_S_L_N(VAR, X_AXIS, XYZE_N)
#define LOOP_ABC(VAR) LOOP_S_LE_N(VAR, A_AXIS, C_AXIS)
#define LOOP_ABCE(VAR) LOOP_S_LE_N(VAR, A_AXIS, E_AXIS)
#define LOOP_ABCE_N(VAR) LOOP_S_L_N(VAR, A_AXIS, XYZE_N)
typedef enum {
LINEARUNIT_MM,

@ -208,10 +208,10 @@
#define MSG_HOTEND_TOO_COLD "Hotend too cold"
#define MSG_FILAMENT_CHANGE_HEAT "Press button (or M108) to heat nozzle"
#define MSG_FILAMENT_CHANGE_HEAT_LCD "Press button to heat nozzle"
#define MSG_FILAMENT_CHANGE_HEAT_M108 "Send M108 to heat nozzle"
#define MSG_FILAMENT_CHANGE_INSERT "Insert filament and press button (or M108)"
#define MSG_FILAMENT_CHANGE_HEAT_LCD "Press button to heat nozzle"
#define MSG_FILAMENT_CHANGE_INSERT_LCD "Insert filament and press button"
#define MSG_FILAMENT_CHANGE_HEAT_M108 "Send M108 to heat nozzle"
#define MSG_FILAMENT_CHANGE_INSERT_M108 "Insert filament and send M108"
#define MSG_ERR_EEPROM_WRITE "Error writing to EEPROM!"
@ -238,8 +238,6 @@
#define MSG_KP " Kp: "
#define MSG_KI " Ki: "
#define MSG_KD " Kd: "
#define MSG_B "B:"
#define MSG_T "T:"
#define MSG_AT " @:"
#define MSG_PID_AUTOTUNE_FINISHED MSG_PID_AUTOTUNE " finished! Put the last Kp, Ki and Kd constants from below into Configuration.h"
#define MSG_PID_DEBUG " PID_DEBUG "
@ -280,6 +278,15 @@
#define MSG_Y "Y"
#define MSG_Z "Z"
#define MSG_E "E"
#if IS_KINEMATIC
#define MSG_A "A"
#define MSG_B "B"
#define MSG_C "C"
#else
#define MSG_A "X"
#define MSG_B "Y"
#define MSG_C "Z"
#endif
#define MSG_H1 "1"
#define MSG_H2 "2"
#define MSG_H3 "3"

@ -24,6 +24,7 @@
#define MACROS_H
#define NUM_AXIS 4
#define ABCE 4
#define XYZE 4
#define ABC 3
#define XYZ 3

@ -96,9 +96,15 @@
#define MSG_SELECT _UxGT("Trigar")
#define MSG_ACC _UxGT("Aceleracion")
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK _UxGT("Vx-jerk")
#define MSG_VY_JERK _UxGT("Vy-jerk")
#define MSG_VZ_JERK _UxGT("Vz-jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-jerk")
#define MSG_VB_JERK _UxGT("Vb-jerk")
#define MSG_VC_JERK _UxGT("Vc-jerk")
#else
#define MSG_VA_JERK _UxGT("Vx-jerk")
#define MSG_VB_JERK _UxGT("Vy-jerk")
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VMAX _UxGT("Vmax")
#define MSG_VMIN _UxGT("Vmin")
@ -108,9 +114,15 @@
#define MSG_A_RETRACT _UxGT("Acel. retrac.")
#define MSG_A_TRAVEL _UxGT("Acel. Viaje")
#define MSG_STEPS_PER_MM _UxGT("Trangos/mm")
#define MSG_XSTEPS _UxGT("X trangos/mm")
#define MSG_YSTEPS _UxGT("Y trangos/mm")
#define MSG_ZSTEPS _UxGT("Z trangos/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("A trangos/mm")
#define MSG_BSTEPS _UxGT("B trangos/mm")
#define MSG_CSTEPS _UxGT("C trangos/mm")
#else
#define MSG_ASTEPS _UxGT("X trangos/mm")
#define MSG_BSTEPS _UxGT("Y trangos/mm")
#define MSG_CSTEPS _UxGT("Z trangos/mm")
#endif
#define MSG_ESTEPS _UxGT("E trangos/mm")
#define MSG_E1STEPS _UxGT("E1 trangos/mm")
#define MSG_E2STEPS _UxGT("E2 trangos/mm")

@ -83,9 +83,15 @@
#define MSG_A_RETRACT _UxGT("A-откат")
#define MSG_A_TRAVEL _UxGT("A-travel")
#define MSG_STEPS_PER_MM _UxGT("Стъпки/mm")
#define MSG_XSTEPS _UxGT("X стъпки/mm")
#define MSG_YSTEPS _UxGT("Y стъпки/mm")
#define MSG_ZSTEPS _UxGT("Z стъпки/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("Aстъпки/mm")
#define MSG_BSTEPS _UxGT("Bстъпки/mm")
#define MSG_CSTEPS _UxGT("Cстъпки/mm")
#else
#define MSG_ASTEPS _UxGT("Xстъпки/mm")
#define MSG_BSTEPS _UxGT("Yстъпки/mm")
#define MSG_CSTEPS _UxGT("Zстъпки/mm")
#endif
#define MSG_ESTEPS _UxGT("E стъпки/mm")
#define MSG_E1STEPS _UxGT("E1 стъпки/mm")
#define MSG_E2STEPS _UxGT("E2 стъпки/mm")

@ -100,9 +100,15 @@
#define MSG_SELECT _UxGT("Select")
#define MSG_ACC _UxGT("Accel")
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK _UxGT("Vx-jerk")
#define MSG_VY_JERK _UxGT("Vy-jerk")
#define MSG_VZ_JERK _UxGT("Vz-jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-jerk")
#define MSG_VB_JERK _UxGT("Vb-jerk")
#define MSG_VC_JERK _UxGT("Vc-jerk")
#else
#define MSG_VA_JERK _UxGT("Vx-jerk")
#define MSG_VB_JERK _UxGT("Vy-jerk")
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin")
@ -111,9 +117,15 @@
#define MSG_A_RETRACT _UxGT("Accel. retracc")
#define MSG_A_TRAVEL _UxGT("Accel. Viatge")
#define MSG_STEPS_PER_MM _UxGT("Passos/mm")
#define MSG_XSTEPS _UxGT("Xpassos/mm")
#define MSG_YSTEPS _UxGT("Ypassos/mm")
#define MSG_ZSTEPS _UxGT("Zpassos/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("Apassos/mm")
#define MSG_BSTEPS _UxGT("Bpassos/mm")
#define MSG_CSTEPS _UxGT("Cpassos/mm")
#else
#define MSG_ASTEPS _UxGT("Xpassos/mm")
#define MSG_BSTEPS _UxGT("Ypassos/mm")
#define MSG_CSTEPS _UxGT("Zpassos/mm")
#endif
#define MSG_ESTEPS _UxGT("Epassos/mm")
#define MSG_E1STEPS _UxGT("E1passos/mm")
#define MSG_E2STEPS _UxGT("E2passos/mm")

@ -88,9 +88,15 @@
#define MSG_PID_C "PID-C"
#define MSG_ACC "Accel"
#define MSG_JERK "Jerk"
#define MSG_VX_JERK "Vx-jerk"
#define MSG_VY_JERK "Vy-jerk"
#define MSG_VZ_JERK "Vz-jerk"
#if IS_KINEMATIC
#define MSG_VA_JERK "Va-jerk"
#define MSG_VB_JERK "Vb-jerk"
#define MSG_VC_JERK "Vc-jerk"
#else
#define MSG_VA_JERK "Vx-jerk"
#define MSG_VB_JERK "Vy-jerk"
#define MSG_VC_JERK "Vz-jerk"
#endif
#define MSG_VE_JERK "Ve-jerk"
#define MSG_VMAX "Vmax "
#define MSG_VMIN "Vmin"
@ -99,9 +105,6 @@
#define MSG_A_RETRACT "A-retract"
#define MSG_A_TRAVEL "A-travel"
#define MSG_STEPS_PER_MM "Steps/mm"
#define MSG_XSTEPS "Xsteps/mm"
#define MSG_YSTEPS "Ysteps/mm"
#define MSG_ZSTEPS "Zsteps/mm"
#define MSG_ESTEPS "Esteps/mm"
#define MSG_E1STEPS "E1steps/mm"
#define MSG_E2STEPS "E2steps/mm"

@ -196,9 +196,15 @@
#define MSG_SELECT _UxGT("Vybrat")
#define MSG_ACC _UxGT("Zrychl")
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK _UxGT("Vx-jerk")
#define MSG_VY_JERK _UxGT("Vy-jerk")
#define MSG_VZ_JERK _UxGT("Vz-jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-jerk")
#define MSG_VB_JERK _UxGT("Vb-jerk")
#define MSG_VC_JERK _UxGT("Vc-jerk")
#else
#define MSG_VA_JERK _UxGT("Vx-jerk")
#define MSG_VB_JERK _UxGT("Vy-jerk")
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VELOCITY _UxGT("Rychlost")
#define MSG_VMAX _UxGT("Vmax ")
@ -209,9 +215,15 @@
#define MSG_A_RETRACT _UxGT("A-retrakt")
#define MSG_A_TRAVEL _UxGT("A-prejezd")
#define MSG_STEPS_PER_MM _UxGT("Kroku/mm")
#define MSG_XSTEPS _UxGT("Xkroku/mm")
#define MSG_YSTEPS _UxGT("Ykroku/mm")
#define MSG_ZSTEPS _UxGT("Zkroku/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("Akroku/mm")
#define MSG_BSTEPS _UxGT("Bkroku/mm")
#define MSG_CSTEPS _UxGT("Ckroku/mm")
#else
#define MSG_ASTEPS _UxGT("Xkroku/mm")
#define MSG_BSTEPS _UxGT("Ykroku/mm")
#define MSG_CSTEPS _UxGT("Zkroku/mm")
#endif
#define MSG_ESTEPS _UxGT("Ekroku/mm")
#define MSG_E1STEPS _UxGT("E1kroku/mm")
#define MSG_E2STEPS _UxGT("E2kroku/mm")

@ -198,9 +198,15 @@
#define MSG_SELECT _UxGT("Vybrat")
#define MSG_ACC _UxGT("Zrychl")
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK _UxGT("Vx-jerk")
#define MSG_VY_JERK _UxGT("Vy-jerk")
#define MSG_VZ_JERK _UxGT("Vz-jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-jerk")
#define MSG_VB_JERK _UxGT("Vb-jerk")
#define MSG_VC_JERK _UxGT("Vc-jerk")
#else
#define MSG_VA_JERK _UxGT("Vx-jerk")
#define MSG_VB_JERK _UxGT("Vy-jerk")
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VELOCITY _UxGT("Rychlost")
#define MSG_VMAX _UxGT("Vmax ")
@ -211,9 +217,15 @@
#define MSG_A_RETRACT _UxGT("A-retrakt")
#define MSG_A_TRAVEL _UxGT("A-přejezd")
#define MSG_STEPS_PER_MM _UxGT("Kroků/mm")
#define MSG_XSTEPS _UxGT("Xkroků/mm")
#define MSG_YSTEPS _UxGT("Ykroků/mm")
#define MSG_ZSTEPS _UxGT("Zkroků/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("Akroků/mm")
#define MSG_BSTEPS _UxGT("Bkroků/mm")
#define MSG_CSTEPS _UxGT("Ckroků/mm")
#else
#define MSG_ASTEPS _UxGT("Xkroků/mm")
#define MSG_BSTEPS _UxGT("Ykroků/mm")
#define MSG_CSTEPS _UxGT("Zkroků/mm")
#endif
#define MSG_ESTEPS _UxGT("Ekroků/mm")
#define MSG_E1STEPS _UxGT("E1kroků/mm")
#define MSG_E2STEPS _UxGT("E2kroků/mm")

@ -97,9 +97,15 @@
#define MSG_SELECT _UxGT("Vælg")
#define MSG_ACC _UxGT("Accel")
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK _UxGT("Vx-jerk")
#define MSG_VY_JERK _UxGT("Vy-jerk")
#define MSG_VZ_JERK _UxGT("Vz-jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-jerk")
#define MSG_VB_JERK _UxGT("Vb-jerk")
#define MSG_VC_JERK _UxGT("Vc-jerk")
#else
#define MSG_VA_JERK _UxGT("Vx-jerk")
#define MSG_VB_JERK _UxGT("Vy-jerk")
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin")
@ -108,9 +114,15 @@
#define MSG_A_RETRACT _UxGT("A-retract")
#define MSG_A_TRAVEL _UxGT("A-rejse")
#define MSG_STEPS_PER_MM _UxGT("Steps/mm")
#define MSG_XSTEPS _UxGT("Xsteps/mm")
#define MSG_YSTEPS _UxGT("Ysteps/mm")
#define MSG_ZSTEPS _UxGT("Zsteps/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("Asteps/mm")
#define MSG_BSTEPS _UxGT("Bsteps/mm")
#define MSG_CSTEPS _UxGT("Csteps/mm")
#else
#define MSG_ASTEPS _UxGT("Xsteps/mm")
#define MSG_BSTEPS _UxGT("Ysteps/mm")
#define MSG_CSTEPS _UxGT("Zsteps/mm")
#endif
#define MSG_ESTEPS _UxGT("Esteps/mm")
#define MSG_E1STEPS _UxGT("E1steps/mm")
#define MSG_E2STEPS _UxGT("E2steps/mm")

@ -110,9 +110,15 @@
#define MSG_SELECT _UxGT("Auswählen")
#define MSG_ACC _UxGT("A")
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK _UxGT("V X Jerk")
#define MSG_VY_JERK _UxGT("V Y Jerk")
#define MSG_VZ_JERK _UxGT("V Z Jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("V A Jerk")
#define MSG_VB_JERK _UxGT("V B Jerk")
#define MSG_VC_JERK _UxGT("V C Jerk")
#else
#define MSG_VA_JERK _UxGT("V X Jerk")
#define MSG_VB_JERK _UxGT("V Y Jerk")
#define MSG_VC_JERK _UxGT("V Z Jerk")
#endif
#define MSG_VE_JERK _UxGT("V E Jerk")
#define MSG_VELOCITY _UxGT("Geschwindigkeit")
#define MSG_VMAX _UxGT("V max ") // space by purpose
@ -123,9 +129,15 @@
#define MSG_A_RETRACT _UxGT("A Retract")
#define MSG_A_TRAVEL _UxGT("A Leerfahrt")
#define MSG_STEPS_PER_MM _UxGT("Steps/mm")
#define MSG_XSTEPS _UxGT("X Steps/mm")
#define MSG_YSTEPS _UxGT("Y Steps/mm")
#define MSG_ZSTEPS _UxGT("Z Steps/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("A Steps/mm")
#define MSG_BSTEPS _UxGT("B Steps/mm")
#define MSG_CSTEPS _UxGT("C Steps/mm")
#else
#define MSG_ASTEPS _UxGT("X Steps/mm")
#define MSG_BSTEPS _UxGT("Y Steps/mm")
#define MSG_CSTEPS _UxGT("Z Steps/mm")
#endif
#define MSG_ESTEPS _UxGT("E Steps/mm")
#define MSG_E1STEPS _UxGT("E1 Steps/mm")
#define MSG_E2STEPS _UxGT("E2 Steps/mm")

@ -95,10 +95,16 @@
#define MSG_PID_C _UxGT("PID-C")
#define MSG_ACC _UxGT("Επιτάχυνση")
#define MSG_JERK _UxGT("Vαντίδραση")
#define MSG_VX_JERK _UxGT("Vαντίδραση x")
#define MSG_VY_JERK _UxGT("Vαντίδραση y")
#define MSG_VZ_JERK _UxGT("Vαντίδραση z")
#define MSG_VE_JERK _UxGT("Vαντίδραση e")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Vαντίδραση A")
#define MSG_VB_JERK _UxGT("Vαντίδραση B")
#define MSG_VC_JERK _UxGT("Vαντίδραση C")
#else
#define MSG_VA_JERK _UxGT("Vαντίδραση X")
#define MSG_VB_JERK _UxGT("Vαντίδραση Y")
#define MSG_VC_JERK _UxGT("Vαντίδραση Z")
#endif
#define MSG_VE_JERK _UxGT("Vαντίδραση E")
#define MSG_VMAX _UxGT("Vμεγ ")
#define MSG_VMIN _UxGT("Vελαχ")
#define MSG_VTRAV_MIN _UxGT("Vελάχ. μετατόπιση")
@ -107,9 +113,15 @@
#define MSG_A_RETRACT _UxGT("Α-ανάσυρση")
#define MSG_A_TRAVEL _UxGT("Α-μετατόπιση")
#define MSG_STEPS_PER_MM _UxGT("Bήματα ανά μμ")
#define MSG_XSTEPS _UxGT("Bήματα X ανά μμ")
#define MSG_YSTEPS _UxGT("Bήματα Υ ανά μμ")
#define MSG_ZSTEPS _UxGT("Bήματα Ζ ανά μμ")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("Bήματα A ανά μμ")
#define MSG_BSTEPS _UxGT("Bήματα B ανά μμ")
#define MSG_CSTEPS _UxGT("Bήματα C ανά μμ")
#else
#define MSG_ASTEPS _UxGT("Bήματα X ανά μμ")
#define MSG_BSTEPS _UxGT("Bήματα Y ανά μμ")
#define MSG_CSTEPS _UxGT("Bήματα Z ανά μμ")
#endif
#define MSG_ESTEPS _UxGT("Bήματα Ε ανά μμ")
#define MSG_E1STEPS _UxGT("Bήματα Ε1 ανά μμ")
#define MSG_E2STEPS _UxGT("Bήματα Ε2 ανά μμ")

@ -95,10 +95,16 @@
#define MSG_PID_C _UxGT("PID-C")
#define MSG_ACC _UxGT("Επιτάχυνση")
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK _UxGT("Vαντίδραση x")
#define MSG_VY_JERK _UxGT("Vαντίδραση y")
#define MSG_VZ_JERK _UxGT("Vαντίδραση z")
#define MSG_VE_JERK _UxGT("Vαντίδραση e")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Vαντίδραση A")
#define MSG_VB_JERK _UxGT("Vαντίδραση B")
#define MSG_VC_JERK _UxGT("Vαντίδραση C")
#else
#define MSG_VA_JERK _UxGT("Vαντίδραση X")
#define MSG_VB_JERK _UxGT("Vαντίδραση Y")
#define MSG_VC_JERK _UxGT("Vαντίδραση Z")
#endif
#define MSG_VE_JERK _UxGT("Vαντίδραση E")
#define MSG_VMAX _UxGT("V Μέγιστο")
#define MSG_VMIN _UxGT("V Ελάχιστο")
#define MSG_VTRAV_MIN _UxGT("Vελάχ. μετατόπιση")
@ -107,9 +113,15 @@
#define MSG_A_RETRACT _UxGT("Α-ανάσυρση")
#define MSG_A_TRAVEL _UxGT("Α-μετατόπιση")
#define MSG_STEPS_PER_MM _UxGT("Bήματα ανά μμ")
#define MSG_XSTEPS _UxGT("Bήματα X ανά μμ")
#define MSG_YSTEPS _UxGT("Bήματα Υ ανά μμ")
#define MSG_ZSTEPS _UxGT("Bήματα Ζ ανά μμ")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("Bήματα A ανά μμ")
#define MSG_BSTEPS _UxGT("Bήματα B ανά μμ")
#define MSG_CSTEPS _UxGT("Bήματα C ανά μμ")
#else
#define MSG_ASTEPS _UxGT("Bήματα X ανά μμ")
#define MSG_BSTEPS _UxGT("Bήματα Y ανά μμ")
#define MSG_CSTEPS _UxGT("Bήματα Z ανά μμ")
#endif
#define MSG_ESTEPS _UxGT("Bήματα Ε ανά μμ")
#define MSG_E1STEPS _UxGT("Bήματα Ε1 ανά μμ")
#define MSG_E2STEPS _UxGT("Bήματα Ε2 ανά μμ")

@ -509,14 +509,26 @@
#ifndef MSG_JERK
#define MSG_JERK _UxGT("Jerk")
#endif
#ifndef MSG_VX_JERK
#define MSG_VX_JERK _UxGT("Vx-jerk")
#endif
#ifndef MSG_VY_JERK
#define MSG_VY_JERK _UxGT("Vy-jerk")
#endif
#ifndef MSG_VZ_JERK
#define MSG_VZ_JERK _UxGT("Vz-jerk")
#if IS_KINEMATIC
#ifndef MSG_VA_JERK
#define MSG_VA_JERK _UxGT("Va-jerk")
#endif
#ifndef MSG_VB_JERK
#define MSG_VB_JERK _UxGT("Vb-jerk")
#endif
#ifndef MSG_VC_JERK
#define MSG_VC_JERK _UxGT("Vc-jerk")
#endif
#else
#ifndef MSG_VA_JERK
#define MSG_VA_JERK _UxGT("Vx-jerk")
#endif
#ifndef MSG_VB_JERK
#define MSG_VB_JERK _UxGT("Vy-jerk")
#endif
#ifndef MSG_VC_JERK
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#endif
#ifndef MSG_VE_JERK
#define MSG_VE_JERK _UxGT("Ve-jerk")
@ -548,14 +560,26 @@
#ifndef MSG_STEPS_PER_MM
#define MSG_STEPS_PER_MM _UxGT("Steps/mm")
#endif
#ifndef MSG_XSTEPS
#define MSG_XSTEPS _UxGT("Xsteps/mm")
#endif
#ifndef MSG_YSTEPS
#define MSG_YSTEPS _UxGT("Ysteps/mm")
#endif
#ifndef MSG_ZSTEPS
#define MSG_ZSTEPS _UxGT("Zsteps/mm")
#if IS_KINEMATIC
#ifndef MSG_ASTEPS
#define MSG_ASTEPS _UxGT("Asteps/mm")
#endif
#ifndef MSG_BSTEPS
#define MSG_BSTEPS _UxGT("Bsteps/mm")
#endif
#ifndef MSG_CSTEPS
#define MSG_CSTEPS _UxGT("Csteps/mm")
#endif
#else
#ifndef MSG_ASTEPS
#define MSG_ASTEPS _UxGT("Xsteps/mm")
#endif
#ifndef MSG_BSTEPS
#define MSG_BSTEPS _UxGT("Ysteps/mm")
#endif
#ifndef MSG_CSTEPS
#define MSG_CSTEPS _UxGT("Zsteps/mm")
#endif
#endif
#ifndef MSG_ESTEPS
#define MSG_ESTEPS _UxGT("Esteps/mm")

@ -103,9 +103,15 @@
#define MSG_SELECT _UxGT("Seleccionar")
#define MSG_ACC _UxGT("Aceleracion")
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK _UxGT("Vx-jerk")
#define MSG_VY_JERK _UxGT("Vy-jerk")
#define MSG_VZ_JERK _UxGT("Vz-jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-jerk")
#define MSG_VB_JERK _UxGT("Vb-jerk")
#define MSG_VC_JERK _UxGT("Vc-jerk")
#else
#define MSG_VA_JERK _UxGT("Vx-jerk")
#define MSG_VB_JERK _UxGT("Vy-jerk")
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VMAX _UxGT("Vmax")
#define MSG_VMIN _UxGT("Vmin")
@ -115,9 +121,15 @@
#define MSG_A_RETRACT _UxGT("Acel. retrac.")
#define MSG_A_TRAVEL _UxGT("Acel. Viaje")
#define MSG_STEPS_PER_MM _UxGT("Pasos/mm")
#define MSG_XSTEPS _UxGT("X pasos/mm")
#define MSG_YSTEPS _UxGT("Y pasos/mm")
#define MSG_ZSTEPS _UxGT("Z pasos/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("A pasos/mm")
#define MSG_BSTEPS _UxGT("B pasos/mm")
#define MSG_CSTEPS _UxGT("C pasos/mm")
#else
#define MSG_ASTEPS _UxGT("X pasos/mm")
#define MSG_BSTEPS _UxGT("Y pasos/mm")
#define MSG_CSTEPS _UxGT("Z pasos/mm")
#endif
#define MSG_ESTEPS _UxGT("E pasos/mm")
#define MSG_E1STEPS _UxGT("E1 pasos/mm")
#define MSG_E2STEPS _UxGT("E2 pasos/mm")

@ -103,9 +103,15 @@
#define MSG_SELECT _UxGT("Aukeratu")
#define MSG_ACC _UxGT("Azelerazioa")
#define MSG_JERK _UxGT("Astindua")
#define MSG_VX_JERK _UxGT("Vx-astindua")
#define MSG_VY_JERK _UxGT("Vy-astindua")
#define MSG_VZ_JERK _UxGT("Vz-astindua")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-astindua")
#define MSG_VB_JERK _UxGT("Vb-astindua")
#define MSG_VC_JERK _UxGT("Vc-astindua")
#else
#define MSG_VA_JERK _UxGT("Vx-astindua")
#define MSG_VB_JERK _UxGT("Vy-astindua")
#define MSG_VC_JERK _UxGT("Vz-astindua")
#endif
#define MSG_VE_JERK _UxGT("Ve-astindua")
#define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin")
@ -115,9 +121,15 @@
#define MSG_A_RETRACT _UxGT("A-retrakt")
#define MSG_A_TRAVEL _UxGT("A-bidaia")
#define MSG_STEPS_PER_MM _UxGT("Pausoak/mm")
#define MSG_XSTEPS _UxGT("X pausoak/mm")
#define MSG_YSTEPS _UxGT("Y pausoak/mm")
#define MSG_ZSTEPS _UxGT("Z pausoak/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("A pausoak/mm")
#define MSG_BSTEPS _UxGT("B pausoak/mm")
#define MSG_CSTEPS _UxGT("C pausoak/mm")
#else
#define MSG_ASTEPS _UxGT("X pausoak/mm")
#define MSG_BSTEPS _UxGT("Y pausoak/mm")
#define MSG_CSTEPS _UxGT("Z pausoak/mm")
#endif
#define MSG_ESTEPS _UxGT("E pausoak/mm")
#define MSG_E1STEPS _UxGT("E1 pausoak/mm")
#define MSG_E2STEPS _UxGT("E2 pausoak/mm")

@ -87,9 +87,15 @@
#define MSG_PID_C _UxGT("PID-C")
#define MSG_ACC _UxGT("Kiihtyv")
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK _UxGT("Vx-jerk")
#define MSG_VY_JERK _UxGT("Vy-jerk")
#define MSG_VZ_JERK _UxGT("Vz-jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-jerk")
#define MSG_VB_JERK _UxGT("Vb-jerk")
#define MSG_VC_JERK _UxGT("Vc-jerk")
#else
#define MSG_VA_JERK _UxGT("Vx-jerk")
#define MSG_VB_JERK _UxGT("Vy-jerk")
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin")
@ -98,9 +104,15 @@
#define MSG_AMAX _UxGT("Amax ")
#define MSG_A_RETRACT _UxGT("A-peruuta")
#define MSG_STEPS_PER_MM _UxGT("Steps/mm")
#define MSG_XSTEPS _UxGT("Xsteps/mm")
#define MSG_YSTEPS _UxGT("Ysteps/mm")
#define MSG_ZSTEPS _UxGT("Zsteps/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("Asteps/mm")
#define MSG_BSTEPS _UxGT("Bsteps/mm")
#define MSG_CSTEPS _UxGT("Csteps/mm")
#else
#define MSG_ASTEPS _UxGT("Xsteps/mm")
#define MSG_BSTEPS _UxGT("Ysteps/mm")
#define MSG_CSTEPS _UxGT("Zsteps/mm")
#endif
#define MSG_ESTEPS _UxGT("Esteps/mm")
#define MSG_E1STEPS _UxGT("E1steps/mm")
#define MSG_E2STEPS _UxGT("E2steps/mm")

@ -166,9 +166,15 @@
#define MSG_SELECT _UxGT("Selectionner")
#define MSG_ACC _UxGT("Acceleration")
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK _UxGT("Vx-jerk")
#define MSG_VY_JERK _UxGT("Vy-jerk")
#define MSG_VZ_JERK _UxGT("Vz-jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-jerk")
#define MSG_VB_JERK _UxGT("Vb-jerk")
#define MSG_VC_JERK _UxGT("Vc-jerk")
#else
#define MSG_VA_JERK _UxGT("Vx-jerk")
#define MSG_VB_JERK _UxGT("Vy-jerk")
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VELOCITY _UxGT("Velocite")
#define MSG_VMAX _UxGT("Vmax")
@ -179,15 +185,21 @@
#define MSG_A_RETRACT _UxGT("A-retract")
#define MSG_A_TRAVEL _UxGT("A-Depl.")
#define MSG_STEPS_PER_MM _UxGT("Pas/mm")
#define MSG_XSTEPS _UxGT("Xpas/mm")
#define MSG_YSTEPS _UxGT("Ypas/mm")
#define MSG_ZSTEPS _UxGT("Zpas/mm")
#define MSG_ESTEPS _UxGT("Epas/mm")
#define MSG_E1STEPS _UxGT("E1pas/mm")
#define MSG_E2STEPS _UxGT("E2pas/mm")
#define MSG_E3STEPS _UxGT("E3pas/mm")
#define MSG_E4STEPS _UxGT("E4pas/mm")
#define MSG_E5STEPS _UxGT("E5pas/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("A pas/mm")
#define MSG_BSTEPS _UxGT("B pas/mm")
#define MSG_CSTEPS _UxGT("C pas/mm")
#else
#define MSG_ASTEPS _UxGT("X pas/mm")
#define MSG_BSTEPS _UxGT("Y pas/mm")
#define MSG_CSTEPS _UxGT("Z pas/mm")
#endif
#define MSG_ESTEPS _UxGT("E pas/mm")
#define MSG_E1STEPS _UxGT("E1 pas/mm")
#define MSG_E2STEPS _UxGT("E2 pas/mm")
#define MSG_E3STEPS _UxGT("E3 pas/mm")
#define MSG_E4STEPS _UxGT("E4 pas/mm")
#define MSG_E5STEPS _UxGT("E5 pas/mm")
#define MSG_TEMPERATURE _UxGT("Temperature")
#define MSG_MOTION _UxGT("Mouvement")
#define MSG_FILAMENT _UxGT("Filament")

@ -166,9 +166,15 @@
#define MSG_SELECT _UxGT("Sélectionner")
#define MSG_ACC _UxGT("Accélération")
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK _UxGT("Vx-jerk")
#define MSG_VY_JERK _UxGT("Vy-jerk")
#define MSG_VZ_JERK _UxGT("Vz-jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-jerk")
#define MSG_VB_JERK _UxGT("Vb-jerk")
#define MSG_VC_JERK _UxGT("Vc-jerk")
#else
#define MSG_VA_JERK _UxGT("Vx-jerk")
#define MSG_VB_JERK _UxGT("Vy-jerk")
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VELOCITY _UxGT("Vélocité")
#define MSG_VMAX _UxGT("Vmax")
@ -179,15 +185,21 @@
#define MSG_A_RETRACT _UxGT("A-retract")
#define MSG_A_TRAVEL _UxGT("A-Dépl.")
#define MSG_STEPS_PER_MM _UxGT("Pas/mm")
#define MSG_XSTEPS _UxGT("Xpas/mm")
#define MSG_YSTEPS _UxGT("Ypas/mm")
#define MSG_ZSTEPS _UxGT("Zpas/mm")
#define MSG_ESTEPS _UxGT("Epas/mm")
#define MSG_E1STEPS _UxGT("E1pas/mm")
#define MSG_E2STEPS _UxGT("E2pas/mm")
#define MSG_E3STEPS _UxGT("E3pas/mm")
#define MSG_E4STEPS _UxGT("E4pas/mm")
#define MSG_E5STEPS _UxGT("E5pas/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("A pas/mm")
#define MSG_BSTEPS _UxGT("B pas/mm")
#define MSG_CSTEPS _UxGT("C pas/mm")
#else
#define MSG_ASTEPS _UxGT("X pas/mm")
#define MSG_BSTEPS _UxGT("Y pas/mm")
#define MSG_CSTEPS _UxGT("Z pas/mm")
#endif
#define MSG_ESTEPS _UxGT("E pas/mm")
#define MSG_E1STEPS _UxGT("E1 pas/mm")
#define MSG_E2STEPS _UxGT("E2 pas/mm")
#define MSG_E3STEPS _UxGT("E3 pas/mm")
#define MSG_E4STEPS _UxGT("E4 pas/mm")
#define MSG_E5STEPS _UxGT("E5 pas/mm")
#define MSG_TEMPERATURE _UxGT("Température")
#define MSG_MOTION _UxGT("Mouvement")
#define MSG_FILAMENT _UxGT("Filament")

@ -97,9 +97,15 @@
#define MSG_SELECT _UxGT("Escolla")
#define MSG_ACC _UxGT("Acel")
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK _UxGT("Vx-jerk")
#define MSG_VY_JERK _UxGT("Vy-jerk")
#define MSG_VZ_JERK _UxGT("Vz-jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-jerk")
#define MSG_VB_JERK _UxGT("Vb-jerk")
#define MSG_VC_JERK _UxGT("Vc-jerk")
#else
#define MSG_VA_JERK _UxGT("Vx-jerk")
#define MSG_VB_JERK _UxGT("Vy-jerk")
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin")
@ -108,15 +114,21 @@
#define MSG_A_RETRACT _UxGT("A-retract")
#define MSG_A_TRAVEL _UxGT("A-travel")
#define MSG_STEPS_PER_MM _UxGT("Pasos/mm")
#define MSG_XSTEPS _UxGT("Xpasos/mm")
#define MSG_YSTEPS _UxGT("Ypasos/mm")
#define MSG_ZSTEPS _UxGT("Zpasos/mm")
#define MSG_ESTEPS _UxGT("Epasos/mm")
#define MSG_E1STEPS _UxGT("E1pasos/mm")
#define MSG_E2STEPS _UxGT("E2pasos/mm")
#define MSG_E3STEPS _UxGT("E3pasos/mm")
#define MSG_E4STEPS _UxGT("E4pasos/mm")
#define MSG_E5STEPS _UxGT("E5pasos/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("A pasos/mm")
#define MSG_BSTEPS _UxGT("B pasos/mm")
#define MSG_CSTEPS _UxGT("C pasos/mm")
#else
#define MSG_ASTEPS _UxGT("X pasos/mm")
#define MSG_BSTEPS _UxGT("Y pasos/mm")
#define MSG_CSTEPS _UxGT("Z pasos/mm")
#endif
#define MSG_ESTEPS _UxGT("E pasos/mm")
#define MSG_E1STEPS _UxGT("E1 pasos/mm")
#define MSG_E2STEPS _UxGT("E2 pasos/mm")
#define MSG_E3STEPS _UxGT("E3 pasos/mm")
#define MSG_E4STEPS _UxGT("E4 pasos/mm")
#define MSG_E5STEPS _UxGT("E5 pasos/mm")
#define MSG_TEMPERATURE _UxGT("Temperatura")
#define MSG_MOTION _UxGT("Movemento")
#define MSG_FILAMENT _UxGT("Filamento")

@ -95,9 +95,15 @@
#define MSG_SELECT _UxGT("Odaberi")
#define MSG_ACC _UxGT("Accel")
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK _UxGT("Vx-jerk")
#define MSG_VY_JERK _UxGT("Vy-jerk")
#define MSG_VZ_JERK _UxGT("Vz-jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-jerk")
#define MSG_VB_JERK _UxGT("Vb-jerk")
#define MSG_VC_JERK _UxGT("Vc-jerk")
#else
#define MSG_VA_JERK _UxGT("Vx-jerk")
#define MSG_VB_JERK _UxGT("Vy-jerk")
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin")
@ -106,9 +112,15 @@
#define MSG_A_RETRACT _UxGT("A-retract")
#define MSG_A_TRAVEL _UxGT("A-travel")
#define MSG_STEPS_PER_MM _UxGT("Steps/mm")
#define MSG_XSTEPS _UxGT("Xsteps/mm")
#define MSG_YSTEPS _UxGT("Ysteps/mm")
#define MSG_ZSTEPS _UxGT("Zsteps/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("Asteps/mm")
#define MSG_BSTEPS _UxGT("Bsteps/mm")
#define MSG_CSTEPS _UxGT("Csteps/mm")
#else
#define MSG_ASTEPS _UxGT("Xsteps/mm")
#define MSG_BSTEPS _UxGT("Ysteps/mm")
#define MSG_CSTEPS _UxGT("Zsteps/mm")
#endif
#define MSG_ESTEPS _UxGT("Esteps/mm")
#define MSG_E1STEPS _UxGT("E1steps/mm")
#define MSG_E2STEPS _UxGT("E2steps/mm")

@ -166,9 +166,15 @@
#define MSG_SELECT _UxGT("Seleziona")
#define MSG_ACC _UxGT("Accel")
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK _UxGT("Vx-jerk")
#define MSG_VY_JERK _UxGT("Vy-jerk")
#define MSG_VZ_JERK _UxGT("Vz-jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-jerk")
#define MSG_VB_JERK _UxGT("Vb-jerk")
#define MSG_VC_JERK _UxGT("Vc-jerk")
#else
#define MSG_VA_JERK _UxGT("Vx-jerk")
#define MSG_VB_JERK _UxGT("Vy-jerk")
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VELOCITY _UxGT("Velocità")
#define MSG_VMAX _UxGT("Vmax ")
@ -179,9 +185,15 @@
#define MSG_A_RETRACT _UxGT("A-retract")
#define MSG_A_TRAVEL _UxGT("A-Spostamento")
#define MSG_STEPS_PER_MM _UxGT("Passi/mm")
#define MSG_XSTEPS _UxGT("Xpassi/mm")
#define MSG_YSTEPS _UxGT("Ypassi/mm")
#define MSG_ZSTEPS _UxGT("Zpassi/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("Apassi/mm")
#define MSG_BSTEPS _UxGT("Bpassi/mm")
#define MSG_CSTEPS _UxGT("Cpassi/mm")
#else
#define MSG_ASTEPS _UxGT("Xpassi/mm")
#define MSG_BSTEPS _UxGT("Ypassi/mm")
#define MSG_CSTEPS _UxGT("Zpassi/mm")
#endif
#define MSG_ESTEPS _UxGT("Epassi/mm")
#define MSG_E1STEPS _UxGT("E1passi/mm")
#define MSG_E2STEPS _UxGT("E2passi/mm")

@ -105,11 +105,18 @@
#define MSG_PID_D "PID-D"
#define MSG_PID_C "PID-C"
#define MSG_SELECT "\xbe\xdd\xc0\xb8" // "センタク" ("Select")
#define MSG_JERK "\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // ヤクド mm/s ("Jerk")
#if LCD_WIDTH >= 20
#define MSG_ACC "\xb6\xbf\xb8\xc4\xde mm/s2" // "カソクド mm/s2" ("Accel")
#define MSG_VX_JERK "X\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // "Xジク ヤクド mm/s" ("Vx-jerk")
#define MSG_VY_JERK "Y\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // "Yジク ヤクド mm/s" ("Vy-jerk")
#define MSG_VZ_JERK "Z\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // "Zジク ヤクド mm/s" ("Vz-jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK "A\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // "Aジク ヤクド mm/s" ("Va-jerk")
#define MSG_VB_JERK "B\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // "Bジク ヤクド mm/s" ("Vb-jerk")
#define MSG_VC_JERK "C\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // "Cジク ヤクド mm/s" ("Vc-jerk")
#else
#define MSG_VA_JERK "X\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // "Xジク ヤクド mm/s" ("Vx-jerk")
#define MSG_VB_JERK "Y\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // "Yジク ヤクド mm/s" ("Vy-jerk")
#define MSG_VC_JERK "Z\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // "Zジク ヤクド mm/s" ("Vz-jerk")
#endif
#define MSG_VE_JERK "\xb4\xb8\xbd\xc4\xd9\xb0\xc0\xde\xb0\x20\xd4\xb8\xc4\xde" // "エクストルーダー ヤクド" ("Ve-jerk")
#define MSG_VMAX "\xbb\xb2\xc0\xde\xb2\xb5\xb8\xd8\xbf\xb8\xc4\xde " // "サイダイオクリソクド " ("Vmax ")
#define MSG_VMIN "\xbb\xb2\xbc\xae\xb3\xb5\xb8\xd8\xbf\xb8\xc4\xde" // "サイショウオクリソクド" ("Vmin")
@ -117,9 +124,15 @@
#define MSG_AMAX "\xbb\xb2\xc0\xde\xb2\xb6\xbf\xb8\xc4\xde " // "サイダイカソクド " ("Amax ")
#else
#define MSG_ACC "\xb6\xbf\xb8\xc4\xde" // "カソクド" ("Accel")
#define MSG_VX_JERK "X\xbc\xde\xb8\x20\xd4\xb8\xc4\xde" // "XYジク ヤクド" ("Vx-jerk")
#define MSG_VY_JERK "Y\xbc\xde\xb8\x20\xd4\xb8\xc4\xde" // "XYジク ヤクド" ("Vy-jerk")
#define MSG_VZ_JERK "Z\xbc\xde\xb8\x20\xd4\xb8\xc4\xde" // "Zジク ヤクド" ("Vz-jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK "A\x20\xd4\xb8\xc4\xde" // "Aジク ヤクド" ("Va-jerk")
#define MSG_VB_JERK "B\x20\xd4\xb8\xc4\xde" // "Bジク ヤクド" ("Vb-jerk")
#define MSG_VC_JERK "C\x20\xd4\xb8\xc4\xde" // "Cジク ヤクド" ("Vc-jerk")
#else
#define MSG_VA_JERK "X\x20\xd4\xb8\xc4\xde" // "Xジク ヤクド" ("Vx-jerk")
#define MSG_VB_JERK "Y\x20\xd4\xb8\xc4\xde" // "Yジク ヤクド" ("Vy-jerk")
#define MSG_VC_JERK "Z\x20\xd4\xb8\xc4\xde" // "Zジク ヤクド" ("Vz-jerk")
#endif
#define MSG_VE_JERK "E\x20\xd4\xb8\xc4\xde" // "E ヤクド" ("Ve-jerk")
#define MSG_VMAX "max\xb5\xb8\xd8\xbf\xb8\xc4\xde " // "maxオクリソクド" ("Vmax ")
#define MSG_VMIN "min\xb5\xb8\xd8\xbf\xb8\xc4\xde" // "minオクリソクド" ("Vmin")
@ -129,27 +142,39 @@
#define MSG_A_RETRACT "\xcb\xb7\xba\xd0\xb6\xbf\xb8\xc4\xde" // "ヒキコミカソクド" ("A-retract")
#define MSG_A_TRAVEL "\xb2\xc4\xde\xb3\xb6\xbf\xb8\xc4\xde" // "イドウカソクド" ("A-travel")
#if LCD_WIDTH >= 20
#define MSG_STEPS_PER_MM "Steps/mm"
#define MSG_XSTEPS "Xsteps/mm"
#define MSG_YSTEPS "Ysteps/mm"
#define MSG_ZSTEPS "Zsteps/mm"
#define MSG_ESTEPS "Esteps/mm"
#define MSG_E1STEPS "E1steps/mm"
#define MSG_E2STEPS "E2steps/mm"
#define MSG_E3STEPS "E3steps/mm"
#define MSG_E4STEPS "E4steps/mm"
#define MSG_E5STEPS "E5steps/mm"
#define MSG_STEPS_PER_MM "Steps/mm"
#if IS_KINEMATIC
#define MSG_ASTEPS "Asteps/mm"
#define MSG_BSTEPS "Bsteps/mm"
#define MSG_CSTEPS "Csteps/mm"
#else
#define MSG_ASTEPS "Xsteps/mm"
#define MSG_BSTEPS "Ysteps/mm"
#define MSG_CSTEPS "Zsteps/mm"
#endif
#define MSG_ESTEPS "Esteps/mm"
#define MSG_E1STEPS "E1steps/mm"
#define MSG_E2STEPS "E2steps/mm"
#define MSG_E3STEPS "E3steps/mm"
#define MSG_E4STEPS "E4steps/mm"
#define MSG_E5STEPS "E5steps/mm"
#else
#define MSG_STEPS_PER_MM "Steps"
#define MSG_XSTEPS "Xsteps"
#define MSG_YSTEPS "Ysteps"
#define MSG_ZSTEPS "Zsteps"
#define MSG_ESTEPS "Esteps"
#define MSG_E1STEPS "E1steps"
#define MSG_E2STEPS "E2steps"
#define MSG_E3STEPS "E3steps"
#define MSG_E4STEPS "E4steps"
#define MSG_E5STEPS "E5steps"
#define MSG_STEPS_PER_MM "Steps"
#if IS_KINEMATIC
#define MSG_ASTEPS "Asteps"
#define MSG_BSTEPS "Bsteps"
#define MSG_CSTEPS "Csteps"
#else
#define MSG_ASTEPS "Xsteps"
#define MSG_BSTEPS "Ysteps"
#define MSG_CSTEPS "Zsteps"
#endif
#define MSG_ESTEPS "Esteps"
#define MSG_E1STEPS "E1steps"
#define MSG_E2STEPS "E2steps"
#define MSG_E3STEPS "E3steps"
#define MSG_E4STEPS "E4steps"
#define MSG_E5STEPS "E5steps"
#endif
#define MSG_TEMPERATURE "\xb5\xdd\xc4\xde" // "オンド" ("Temperature")
#define MSG_MOTION "\xb3\xba\xde\xb7\xbe\xaf\xc3\xb2" // "ウゴキセッテイ" ("Motion")

@ -106,9 +106,15 @@
#define MSG_SELECT _UxGT("センタク") // "Select"
#define MSG_ACC _UxGT("カソクド mm/s2") // "Accel"
#define MSG_JERK _UxGT("ヤクド mm/s") // "Jerk"
#define MSG_VX_JERK _UxGT("Xジク ヤクド mm/s") // "Vx-jerk"
#define MSG_VY_JERK _UxGT("Yジク ヤクド mm/s") // "Vy-jerk"
#define MSG_VZ_JERK _UxGT("Zジク ヤクド mm/s") // "Vz-jerk"
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Aジク ヤクド mm/s") // "Va-jerk"
#define MSG_VB_JERK _UxGT("Bジク ヤクド mm/s") // "Vb-jerk"
#define MSG_VC_JERK _UxGT("Cジク ヤクド mm/s") // "Vc-jerk"
#else
#define MSG_VA_JERK _UxGT("Xジク ヤクド mm/s") // "Vx-jerk"
#define MSG_VB_JERK _UxGT("Yジク ヤクド mm/s") // "Vy-jerk"
#define MSG_VC_JERK _UxGT("Zジク ヤクド mm/s") // "Vz-jerk"
#endif
#define MSG_VE_JERK _UxGT("エクストルーダー ヤクド") // "Ve-jerk"
#define MSG_VMAX _UxGT("サイダイオクリソクド ") // "Vmax "
#define MSG_VMIN _UxGT("サイショウオクリソクド") // "Vmin"

@ -103,9 +103,15 @@
#define MSG_SELECT _UxGT("Selecteer")
#define MSG_ACC _UxGT("Versn")
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK _UxGT("Vx-jerk")
#define MSG_VY_JERK _UxGT("Vy-jerk")
#define MSG_VZ_JERK _UxGT("Vz-jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-jerk")
#define MSG_VB_JERK _UxGT("Vb-jerk")
#define MSG_VC_JERK _UxGT("Vc-jerk")
#else
#define MSG_VA_JERK _UxGT("Vx-jerk")
#define MSG_VB_JERK _UxGT("Vy-jerk")
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin")
@ -114,9 +120,15 @@
#define MSG_A_RETRACT _UxGT("A-retract")
#define MSG_A_TRAVEL _UxGT("A-travel")
#define MSG_STEPS_PER_MM _UxGT("Steps/mm")
#define MSG_XSTEPS _UxGT("Xsteps/mm")
#define MSG_YSTEPS _UxGT("Ysteps/mm")
#define MSG_ZSTEPS _UxGT("Zsteps/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("Asteps/mm")
#define MSG_BSTEPS _UxGT("Bsteps/mm")
#define MSG_CSTEPS _UxGT("Csteps/mm")
#else
#define MSG_ASTEPS _UxGT("Xsteps/mm")
#define MSG_BSTEPS _UxGT("Ysteps/mm")
#define MSG_CSTEPS _UxGT("Zsteps/mm")
#endif
#define MSG_ESTEPS _UxGT("Esteps/mm")
#define MSG_E1STEPS _UxGT("E1steps/mm")
#define MSG_E2STEPS _UxGT("E2steps/mm")
@ -250,7 +262,7 @@
#define MSG_FILAMENT_CHANGE_LOAD_1 _UxGT("Wacht voor")
#define MSG_FILAMENT_CHANGE_LOAD_2 _UxGT("filament te")
#define MSG_FILAMENT_CHANGE_LOAD_3 _UxGT("laden")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wacht voor print")
#define MSG_FILAMENT_CHANGE_RESUME_1 _UxGT("Wacht voor print")
#define MSG_FILAMENT_CHANGE_RESUME_2 _UxGT("om verder")
#define MSG_FILAMENT_CHANGE_RESUME_3 _UxGT("te gaan")
#else // LCD_HEIGHT < 4

@ -91,9 +91,15 @@
#define MSG_SELECT _UxGT("Select")
#define MSG_ACC _UxGT("Przyśpieszenie")
#define MSG_JERK _UxGT("Zryw")
#define MSG_VX_JERK _UxGT("Zryw Vx")
#define MSG_VY_JERK _UxGT("Zryw Vy")
#define MSG_VZ_JERK _UxGT("Zryw Vz")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Zryw Va")
#define MSG_VB_JERK _UxGT("Zryw Vb")
#define MSG_VC_JERK _UxGT("Zryw Vc")
#else
#define MSG_VA_JERK _UxGT("Zryw Vx")
#define MSG_VB_JERK _UxGT("Zryw Vy")
#define MSG_VC_JERK _UxGT("Zryw Vz")
#endif
#define MSG_VE_JERK _UxGT("Zryw Ve")
#define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin")
@ -103,9 +109,15 @@
#define MSG_A_RETRACT _UxGT("A-wycofanie")
#define MSG_A_TRAVEL _UxGT("A-przesuń.")
#define MSG_STEPS_PER_MM _UxGT("kroki/mm")
#define MSG_XSTEPS _UxGT("krokiX/mm")
#define MSG_YSTEPS _UxGT("krokiY/mm")
#define MSG_ZSTEPS _UxGT("krokiZ/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("krokiA/mm")
#define MSG_BSTEPS _UxGT("krokiB/mm")
#define MSG_CSTEPS _UxGT("krokiC/mm")
#else
#define MSG_ASTEPS _UxGT("krokiX/mm")
#define MSG_BSTEPS _UxGT("krokiY/mm")
#define MSG_CSTEPS _UxGT("krokiZ/mm")
#endif
#define MSG_ESTEPS _UxGT("krokiE/mm")
#define MSG_E1STEPS _UxGT("krokiE1/mm")
#define MSG_E2STEPS _UxGT("krokiE2/mm")

@ -93,9 +93,15 @@
#define MSG_SELECT _UxGT("Select")
#define MSG_ACC _UxGT("Przyspieszenie")
#define MSG_JERK _UxGT("Zryw")
#define MSG_VX_JERK _UxGT("Zryw Vx")
#define MSG_VY_JERK _UxGT("Zryw Vy")
#define MSG_VZ_JERK _UxGT("Zryw Vz")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Zryw Va")
#define MSG_VB_JERK _UxGT("Zryw Vb")
#define MSG_VC_JERK _UxGT("Zryw Vc")
#else
#define MSG_VA_JERK _UxGT("Zryw Vx")
#define MSG_VB_JERK _UxGT("Zryw Vy")
#define MSG_VC_JERK _UxGT("Zryw Vz")
#endif
#define MSG_VE_JERK _UxGT("Zryw Ve")
#define MSG_VMAX _UxGT("Vmax ")
#define MSG_VMIN _UxGT("Vmin")
@ -105,9 +111,15 @@
#define MSG_A_RETRACT _UxGT("A-wycofanie")
#define MSG_A_TRAVEL _UxGT("A-przesun.")
#define MSG_STEPS_PER_MM _UxGT("kroki/mm")
#define MSG_XSTEPS _UxGT("krokiX/mm")
#define MSG_YSTEPS _UxGT("krokiY/mm")
#define MSG_ZSTEPS _UxGT("krokiZ/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("krokiA/mm")
#define MSG_BSTEPS _UxGT("krokiB/mm")
#define MSG_CSTEPS _UxGT("krokiC/mm")
#else
#define MSG_ASTEPS _UxGT("krokiX/mm")
#define MSG_BSTEPS _UxGT("krokiY/mm")
#define MSG_CSTEPS _UxGT("krokiZ/mm")
#endif
#define MSG_ESTEPS _UxGT("krokiE/mm")
#define MSG_E1STEPS _UxGT("krokiE1/mm")
#define MSG_E2STEPS _UxGT("krokiE2/mm")

@ -88,9 +88,15 @@
#define MSG_PID_C "PID-C"
#define MSG_ACC "Acc"
#define MSG_JERK "Jogo"
#define MSG_VX_JERK "jogo VX"
#define MSG_VY_JERK "jogo VY"
#define MSG_VZ_JERK "jogo VZ"
#if IS_KINEMATIC
#define MSG_VA_JERK "jogo VA"
#define MSG_VB_JERK "jogo VB"
#define MSG_VC_JERK "jogo VC"
#else
#define MSG_VA_JERK "jogo VX"
#define MSG_VB_JERK "jogo VY"
#define MSG_VC_JERK "jogo VZ"
#endif
#define MSG_VE_JERK "jogo VE"
#define MSG_VMAX " Vmax "
#define MSG_VMIN "Vmin"
@ -99,9 +105,15 @@
#define MSG_A_RETRACT "Retrair A"
#define MSG_A_TRAVEL "A-movimento"
#define MSG_STEPS_PER_MM "Passo/mm"
#define MSG_XSTEPS "Passo X/mm"
#define MSG_YSTEPS "Passo Y/mm"
#define MSG_ZSTEPS "Passo Z/mm"
#if IS_KINEMATIC
#define MSG_ASTEPS "A/mm"
#define MSG_BSTEPS "B/mm"
#define MSG_CSTEPS "C/mm"
#else
#define MSG_ASTEPS "X/mm"
#define MSG_BSTEPS "Y/mm"
#define MSG_CSTEPS "Z/mm"
#endif
#define MSG_ESTEPS "E/mm"
#define MSG_E1STEPS "E1/mm"
#define MSG_E2STEPS "E2/mm"

@ -88,9 +88,15 @@
#define MSG_PID_C _UxGT("PID-C")
#define MSG_ACC _UxGT("Acc")
#define MSG_JERK _UxGT("Jogo")
#define MSG_VX_JERK _UxGT("jogo VX")
#define MSG_VY_JERK _UxGT("jogo VY")
#define MSG_VZ_JERK _UxGT("jogo VZ")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("jogo VA")
#define MSG_VB_JERK _UxGT("jogo VB")
#define MSG_VC_JERK _UxGT("jogo VC")
#else
#define MSG_VA_JERK _UxGT("jogo VX")
#define MSG_VB_JERK _UxGT("jogo VY")
#define MSG_VC_JERK _UxGT("jogo VZ")
#endif
#define MSG_VE_JERK _UxGT("jogo VE")
#define MSG_VMAX _UxGT(" Vmax ")
#define MSG_VMIN _UxGT("Vmin")
@ -99,9 +105,15 @@
#define MSG_A_RETRACT _UxGT("Retrair A")
#define MSG_A_TRAVEL _UxGT("A-movimento")
#define MSG_STEPS_PER_MM _UxGT("Passo/mm")
#define MSG_XSTEPS _UxGT("Passo X/mm")
#define MSG_YSTEPS _UxGT("Passo Y/mm")
#define MSG_ZSTEPS _UxGT("Passo Z/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("A/mm")
#define MSG_BSTEPS _UxGT("B/mm")
#define MSG_CSTEPS _UxGT("C/mm")
#else
#define MSG_ASTEPS _UxGT("X/mm")
#define MSG_BSTEPS _UxGT("Y/mm")
#define MSG_CSTEPS _UxGT("Z/mm")
#endif
#define MSG_ESTEPS _UxGT("E/mm")
#define MSG_E1STEPS _UxGT("E1/mm")
#define MSG_E2STEPS _UxGT("E2/mm")

@ -33,7 +33,7 @@
#define DISPLAY_CHARSET_ISO10646_1
#define NOT_EXTENDED_ISO10646_1_5X7
#define WELCOME_MSG MACHINE_NAME " pronto."
#define WELCOME_MSG MACHINE_NAME " pronta."
#define MSG_SD_INSERTED "Cartao inserido"
#define MSG_SD_REMOVED "Cartao removido"
#define MSG_MAIN "Menu principal"
@ -91,10 +91,16 @@
#define MSG_PID_D "PID-D"
#define MSG_PID_C "PID-C"
#define MSG_ACC "Acc"
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK "Vx-jerk"
#define MSG_VY_JERK "Vy-jerk"
#define MSG_VZ_JERK "Vz-jerk"
#define MSG_JERK "Jerk"
#if IS_KINEMATIC
#define MSG_VA_JERK "Va-jerk"
#define MSG_VB_JERK "Vb-jerk"
#define MSG_VC_JERK "Vc-jerk"
#else
#define MSG_VA_JERK "Vx-jerk"
#define MSG_VB_JERK "Vy-jerk"
#define MSG_VC_JERK "Vz-jerk"
#endif
#define MSG_VE_JERK "Ve-jerk"
#define MSG_VMAX " Vmax "
#define MSG_VMIN "Vmin"
@ -103,9 +109,15 @@
#define MSG_A_RETRACT "A-retraccao"
#define MSG_A_TRAVEL "A-movimento"
#define MSG_STEPS_PER_MM "Passo/mm"
#define MSG_XSTEPS "X passo/mm"
#define MSG_YSTEPS "Y passo/mm"
#define MSG_ZSTEPS "Z passo/mm"
#if IS_KINEMATIC
#define MSG_ASTEPS "A passo/mm"
#define MSG_BSTEPS "B passo/mm"
#define MSG_CSTEPS "C passo/mm"
#else
#define MSG_ASTEPS "X passo/mm"
#define MSG_BSTEPS "Y passo/mm"
#define MSG_CSTEPS "Z passo/mm"
#endif
#define MSG_ESTEPS "E passo/mm"
#define MSG_E1STEPS "E1 passo/mm"
#define MSG_E2STEPS "E2 passo/mm"

@ -33,7 +33,7 @@
#define DISPLAY_CHARSET_ISO10646_1
#define WELCOME_MSG MACHINE_NAME _UxGT(" pronto.")
#define WELCOME_MSG MACHINE_NAME _UxGT(" pronta.")
#define MSG_SD_INSERTED _UxGT("Cartão inserido")
#define MSG_SD_REMOVED _UxGT("Cartão removido")
#define MSG_MAIN _UxGT("Menu principal")
@ -92,9 +92,15 @@
#define MSG_PID_C _UxGT("PID-C")
#define MSG_ACC _UxGT("Acc")
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK _UxGT("Vx-jerk")
#define MSG_VY_JERK _UxGT("Vy-jerk")
#define MSG_VZ_JERK _UxGT("Vz-jerk")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-jerk")
#define MSG_VB_JERK _UxGT("Vb-jerk")
#define MSG_VC_JERK _UxGT("Vc-jerk")
#else
#define MSG_VA_JERK _UxGT("Vx-jerk")
#define MSG_VB_JERK _UxGT("Vy-jerk")
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk")
#define MSG_VMAX _UxGT(" Vmax ")
#define MSG_VMIN _UxGT("Vmin")
@ -103,9 +109,15 @@
#define MSG_A_RETRACT _UxGT("A-retracção")
#define MSG_A_TRAVEL _UxGT("A-movimento")
#define MSG_STEPS_PER_MM _UxGT("Passo/mm")
#define MSG_XSTEPS _UxGT("X passo/mm")
#define MSG_YSTEPS _UxGT("Y passo/mm")
#define MSG_ZSTEPS _UxGT("Z passo/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("A passo/mm")
#define MSG_BSTEPS _UxGT("B passo/mm")
#define MSG_CSTEPS _UxGT("C passo/mm")
#else
#define MSG_ASTEPS _UxGT("X passo/mm")
#define MSG_BSTEPS _UxGT("Y passo/mm")
#define MSG_CSTEPS _UxGT("Z passo/mm")
#endif
#define MSG_ESTEPS _UxGT("E passo/mm")
#define MSG_E1STEPS _UxGT("E1 passo/mm")
#define MSG_E2STEPS _UxGT("E2 passo/mm")

@ -165,9 +165,15 @@
#define MSG_SELECT _UxGT("Выбор")
#define MSG_ACC _UxGT("Ускорение")
#define MSG_JERK _UxGT("Рывок")
#define MSG_VX_JERK _UxGT("Vx-рывок")
#define MSG_VY_JERK _UxGT("Vy-рывок")
#define MSG_VZ_JERK _UxGT("Vz-рывок")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-рывок")
#define MSG_VB_JERK _UxGT("Vb-рывок")
#define MSG_VC_JERK _UxGT("Vc-рывок")
#else
#define MSG_VA_JERK _UxGT("Vx-рывок")
#define MSG_VB_JERK _UxGT("Vy-рывок")
#define MSG_VC_JERK _UxGT("Vz-рывок")
#endif
#define MSG_VE_JERK _UxGT("Ve-рывок")
#define MSG_VELOCITY _UxGT("Скорость")
#define MSG_VMAX _UxGT("Vмакс ")
@ -178,9 +184,15 @@
#define MSG_A_RETRACT _UxGT("A-втягивание")
#define MSG_A_TRAVEL _UxGT("A-путеш.")
#define MSG_STEPS_PER_MM _UxGT("Шаг/мм")
#define MSG_XSTEPS _UxGT("X шаг/мм")
#define MSG_YSTEPS _UxGT("Y шаг/мм")
#define MSG_ZSTEPS _UxGT("Z шаг/мм")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("A шаг/мм")
#define MSG_BSTEPS _UxGT("B шаг/мм")
#define MSG_CSTEPS _UxGT("C шаг/мм")
#else
#define MSG_ASTEPS _UxGT("X шаг/мм")
#define MSG_BSTEPS _UxGT("Y шаг/мм")
#define MSG_CSTEPS _UxGT("Z шаг/мм")
#endif
#define MSG_ESTEPS _UxGT("E шаг/мм")
#define MSG_E1STEPS _UxGT("E1 шаг/мм")
#define MSG_E2STEPS _UxGT("E2 шаг/мм")

@ -170,9 +170,15 @@
#define MSG_SELECT _UxGT("Vybrať")
#define MSG_ACC _UxGT("Zrýchl")
#define MSG_JERK _UxGT("Skok")
#define MSG_VX_JERK _UxGT("Vx-skok")
#define MSG_VY_JERK _UxGT("Vy-skok")
#define MSG_VZ_JERK _UxGT("Vz-skok")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-skok")
#define MSG_VB_JERK _UxGT("Vb-skok")
#define MSG_VC_JERK _UxGT("Vc-skok")
#else
#define MSG_VA_JERK _UxGT("Vx-skok")
#define MSG_VB_JERK _UxGT("Vy-skok")
#define MSG_VC_JERK _UxGT("Vz-skok")
#endif
#define MSG_VE_JERK _UxGT("Ve-skok")
#define MSG_VELOCITY _UxGT("Rýchlosť")
#define MSG_VMAX _UxGT("Vmax ")
@ -183,9 +189,15 @@
#define MSG_A_RETRACT _UxGT("A-retrakt")
#define MSG_A_TRAVEL _UxGT("A-prejazd")
#define MSG_STEPS_PER_MM _UxGT("Krokov/mm")
#define MSG_XSTEPS _UxGT("Xkrokov/mm")
#define MSG_YSTEPS _UxGT("Ykrokov/mm")
#define MSG_ZSTEPS _UxGT("Zkrokov/mm")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("Akrokov/mm")
#define MSG_BSTEPS _UxGT("Bkrokov/mm")
#define MSG_CSTEPS _UxGT("Ckrokov/mm")
#else
#define MSG_ASTEPS _UxGT("Xkrokov/mm")
#define MSG_BSTEPS _UxGT("Ykrokov/mm")
#define MSG_CSTEPS _UxGT("Zkrokov/mm")
#endif
#define MSG_ESTEPS _UxGT("Ekrokov/mm")
#define MSG_E1STEPS _UxGT("E1krokov/mm")
#define MSG_E2STEPS _UxGT("E2krokov/mm")

@ -107,9 +107,15 @@
#define MSG_SELECT _UxGT("Seç") // Seç
#define MSG_ACC _UxGT("İvme") // İvme
#define MSG_JERK _UxGT("Jerk")
#define MSG_VX_JERK _UxGT("Vx-Jerk") // Vx-Jerk
#define MSG_VY_JERK _UxGT("Vy-Jerk") // Vy-Jerk
#define MSG_VZ_JERK _UxGT("Vz-jerk") // Vz-Jerk
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-jerk")
#define MSG_VB_JERK _UxGT("Vb-jerk")
#define MSG_VC_JERK _UxGT("Vc-jerk")
#else
#define MSG_VA_JERK _UxGT("Vx-jerk")
#define MSG_VB_JERK _UxGT("Vy-jerk")
#define MSG_VC_JERK _UxGT("Vz-jerk")
#endif
#define MSG_VE_JERK _UxGT("Ve-jerk") // Ve-Jerk
#define MSG_VMAX _UxGT("Vmax ") // Vmax
#define MSG_VMIN _UxGT("Vmin") // Vmin
@ -117,10 +123,16 @@
#define MSG_AMAX _UxGT("Amax ") // Amax
#define MSG_A_RETRACT _UxGT("A-retract") // A-retract
#define MSG_A_TRAVEL _UxGT("A-travel") // A-travel
#define MSG_STEPS_PER_MM _UxGT("Steps/mm") // Xsteps/mm
#define MSG_XSTEPS _UxGT("Xsteps/mm") // Xsteps/mm
#define MSG_YSTEPS _UxGT("Ysteps/mm") // Ysteps/mm
#define MSG_ZSTEPS _UxGT("Zsteps/mm") // Zsteps/mm
#define MSG_STEPS_PER_MM _UxGT("Steps/mm") // Steps/mm
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("Asteps/mm")
#define MSG_BSTEPS _UxGT("Bsteps/mm")
#define MSG_CSTEPS _UxGT("Csteps/mm")
#else
#define MSG_ASTEPS _UxGT("Xsteps/mm")
#define MSG_BSTEPS _UxGT("Ysteps/mm")
#define MSG_CSTEPS _UxGT("Zsteps/mm")
#endif
#define MSG_ESTEPS _UxGT("Esteps/mm") // Esteps/mm
#define MSG_E1STEPS _UxGT("E1steps/mm") // E1steps/mm
#define MSG_E2STEPS _UxGT("E2steps/mm") // E2steps/mm

@ -96,9 +96,15 @@
#define MSG_SELECT _UxGT("Вибрати")
#define MSG_ACC _UxGT("Приск.")
#define MSG_JERK _UxGT("Ривок")
#define MSG_VX_JERK _UxGT("Vx-ривок")
#define MSG_VY_JERK _UxGT("Vy-ривок")
#define MSG_VZ_JERK _UxGT("Vz-ривок")
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("Va-ривок")
#define MSG_VB_JERK _UxGT("Vb-ривок")
#define MSG_VC_JERK _UxGT("Vc-ривок")
#else
#define MSG_VA_JERK _UxGT("Vx-ривок")
#define MSG_VB_JERK _UxGT("Vy-ривок")
#define MSG_VC_JERK _UxGT("Vz-ривок")
#endif
#define MSG_VE_JERK _UxGT("Ve-ривок")
#define MSG_VMAX _UxGT("Vмакс")
#define MSG_VMIN _UxGT("Vмін")
@ -107,9 +113,15 @@
#define MSG_A_RETRACT _UxGT("A-втягув.")
#define MSG_A_TRAVEL _UxGT("A-руху")
#define MSG_STEPS_PER_MM _UxGT("Кроків/мм")
#define MSG_XSTEPS _UxGT("Xкроків/мм")
#define MSG_YSTEPS _UxGT("Yкроків/мм")
#define MSG_ZSTEPS _UxGT("Zкроків/мм")
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("Aкроків/мм")
#define MSG_BSTEPS _UxGT("Bкроків/мм")
#define MSG_CSTEPS _UxGT("Cкроків/мм")
#else
#define MSG_ASTEPS _UxGT("Xкроків/мм")
#define MSG_BSTEPS _UxGT("Yкроків/мм")
#define MSG_CSTEPS _UxGT("Zкроків/мм")
#endif
#define MSG_ESTEPS _UxGT("Eкроків/мм")
#define MSG_E1STEPS _UxGT("E1кроків/мм")
#define MSG_E2STEPS _UxGT("E2кроків/мм")

@ -93,9 +93,15 @@
#define MSG_SELECT _UxGT("选择") //"Select"
#define MSG_ACC _UxGT("加速度") //"Accel" acceleration
#define MSG_JERK _UxGT("抖动速率") // "Jerk"
#define MSG_VX_JERK _UxGT("X轴抖动速率") //"Vx-jerk"
#define MSG_VY_JERK _UxGT("Y轴抖动速率") //"Vy-jerk"
#define MSG_VZ_JERK _UxGT("Z轴抖动速率") //"Vz-jerk"
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("A轴抖动速率") //"Va-jerk"
#define MSG_VB_JERK _UxGT("B轴抖动速率") //"Vb-jerk"
#define MSG_VC_JERK _UxGT("C轴抖动速率") //"Vc-jerk"
#else
#define MSG_VA_JERK _UxGT("X轴抖动速率") //"Vx-jerk"
#define MSG_VB_JERK _UxGT("Y轴抖动速率") //"Vy-jerk"
#define MSG_VC_JERK _UxGT("Z轴抖动速率") //"Vz-jerk"
#endif
#define MSG_VE_JERK _UxGT("挤出机抖动速率") //"Ve-jerk"
#define MSG_VMAX _UxGT("最大进料速率") //"Vmax " max_feedrate_mm_s
#define MSG_VMIN _UxGT("最小进料速率") //"Vmin" min_feedrate_mm_s
@ -104,9 +110,15 @@
#define MSG_A_RETRACT _UxGT("收进加速度") //"A-retract" retract_acceleration, E acceleration in mm/s^2 for retracts
#define MSG_A_TRAVEL _UxGT("非打印移动加速度") //"A-travel" travel_acceleration, X, Y, Z acceleration in mm/s^2 for travel (non printing) moves
#define MSG_STEPS_PER_MM _UxGT("轴步数/mm") //"Steps/mm" axis_steps_per_mm, axis steps-per-unit G92
#define MSG_XSTEPS _UxGT("X轴步数/mm") //"Xsteps/mm" axis_steps_per_mm, axis steps-per-unit G92
#define MSG_YSTEPS _UxGT("Y轴步数/mm") //"Ysteps/mm"
#define MSG_ZSTEPS _UxGT("Z轴步数/mm") //"Zsteps/mm"
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("A轴步数/mm") //"Asteps/mm"
#define MSG_BSTEPS _UxGT("B轴步数/mm") //"Bsteps/mm"
#define MSG_CSTEPS _UxGT("C轴步数/mm") //"Csteps/mm"
#else
#define MSG_ASTEPS _UxGT("X轴步数/mm") //"Xsteps/mm"
#define MSG_BSTEPS _UxGT("Y轴步数/mm") //"Ysteps/mm"
#define MSG_CSTEPS _UxGT("Z轴步数/mm") //"Zsteps/mm"
#endif
#define MSG_ESTEPS _UxGT("挤出机步数/mm") //"Esteps/mm"
#define MSG_TEMPERATURE _UxGT("温度") //"Temperature"
#define MSG_MOTION _UxGT("运动") //"Motion"

@ -93,9 +93,15 @@
#define MSG_SELECT _UxGT("選擇") //"Select"
#define MSG_ACC _UxGT("加速度") //"Accel" acceleration
#define MSG_JERK _UxGT("抖動速率") //"Jerk"
#define MSG_VX_JERK _UxGT("X軸抖動速率") //"Vx-jerk"
#define MSG_VY_JERK _UxGT("Y軸抖動速率") //"Vy-jerk"
#define MSG_VZ_JERK _UxGT("Z軸抖動速率") //"Vz-jerk"
#if IS_KINEMATIC
#define MSG_VA_JERK _UxGT("A軸抖動速率") //"Va-jerk"
#define MSG_VB_JERK _UxGT("B軸抖動速率") //"Vb-jerk"
#define MSG_VC_JERK _UxGT("C軸抖動速率") //"Vc-jerk"
#else
#define MSG_VA_JERK _UxGT("X軸抖動速率") //"Vx-jerk"
#define MSG_VB_JERK _UxGT("Y軸抖動速率") //"Vy-jerk"
#define MSG_VC_JERK _UxGT("Z軸抖動速率") //"Vz-jerk"
#endif
#define MSG_VE_JERK _UxGT("擠出機抖動速率") //"Ve-jerk"
#define MSG_VMAX _UxGT("最大進料速率") //"Vmax " max_feedrate_mm_s
#define MSG_VMIN _UxGT("最小進料速率") //"Vmin" min_feedrate_mm_s
@ -104,9 +110,15 @@
#define MSG_A_RETRACT _UxGT("回縮加速度") //"A-retract" retract_acceleration, E acceleration in mm/s^2 for retracts
#define MSG_A_TRAVEL _UxGT("非列印移動加速度") //"A-travel" travel_acceleration, X, Y, Z acceleration in mm/s^2 for travel (non printing) moves
#define MSG_STEPS_PER_MM _UxGT("軸步數/mm") //"Steps/mm" axis_steps_per_mm, axis steps-per-unit G92
#define MSG_XSTEPS _UxGT("X軸步數/mm") //"Xsteps/mm" axis_steps_per_mm, axis steps-per-unit G92
#define MSG_YSTEPS _UxGT("Y軸步數/mm") //"Ysteps/mm"
#define MSG_ZSTEPS _UxGT("Z軸步數/mm") //"Zsteps/mm"
#if IS_KINEMATIC
#define MSG_ASTEPS _UxGT("A軸步數/mm") //"Asteps/mm" axis_steps_per_mm, axis steps-per-unit G92
#define MSG_BSTEPS _UxGT("B軸步數/mm") //"Bsteps/mm"
#define MSG_CSTEPS _UxGT("C軸步數/mm") //"Csteps/mm"
#else
#define MSG_ASTEPS _UxGT("X軸步數/mm") //"Xsteps/mm" axis_steps_per_mm, axis steps-per-unit G92
#define MSG_BSTEPS _UxGT("Y軸步數/mm") //"Ysteps/mm"
#define MSG_CSTEPS _UxGT("Z軸步數/mm") //"Zsteps/mm"
#endif
#define MSG_ESTEPS _UxGT("擠出機步數/mm") //"Esteps/mm"
#define MSG_TEMPERATURE _UxGT("溫度") //"Temperature"
#define MSG_MOTION _UxGT("運作") //"Motion"

@ -3511,9 +3511,9 @@ void kill_screen(const char* lcd_msg) {
MENU_BACK(MSG_MOTION);
// M203 Max Feedrate
MENU_ITEM_EDIT(float3, MSG_VMAX MSG_X, &planner.max_feedrate_mm_s[X_AXIS], 1, 999);
MENU_ITEM_EDIT(float3, MSG_VMAX MSG_Y, &planner.max_feedrate_mm_s[Y_AXIS], 1, 999);
MENU_ITEM_EDIT(float3, MSG_VMAX MSG_Z, &planner.max_feedrate_mm_s[Z_AXIS], 1, 999);
MENU_ITEM_EDIT(float3, MSG_VMAX MSG_A, &planner.max_feedrate_mm_s[A_AXIS], 1, 999);
MENU_ITEM_EDIT(float3, MSG_VMAX MSG_B, &planner.max_feedrate_mm_s[B_AXIS], 1, 999);
MENU_ITEM_EDIT(float3, MSG_VMAX MSG_C, &planner.max_feedrate_mm_s[C_AXIS], 1, 999);
#if ENABLED(DISTINCT_E_FACTORS)
MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E, &planner.max_feedrate_mm_s[E_AXIS + active_extruder], 1, 999);
@ -3556,9 +3556,9 @@ void kill_screen(const char* lcd_msg) {
MENU_ITEM_EDIT(float5, MSG_A_TRAVEL, &planner.travel_acceleration, 100, 99000);
// M201 settings
MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_X, &planner.max_acceleration_mm_per_s2[X_AXIS], 100, 99000, _reset_acceleration_rates);
MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_Y, &planner.max_acceleration_mm_per_s2[Y_AXIS], 100, 99000, _reset_acceleration_rates);
MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_Z, &planner.max_acceleration_mm_per_s2[Z_AXIS], 10, 99000, _reset_acceleration_rates);
MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_A, &planner.max_acceleration_mm_per_s2[A_AXIS], 100, 99000, _reset_acceleration_rates);
MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_B, &planner.max_acceleration_mm_per_s2[B_AXIS], 100, 99000, _reset_acceleration_rates);
MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_C, &planner.max_acceleration_mm_per_s2[C_AXIS], 10, 99000, _reset_acceleration_rates);
#if ENABLED(DISTINCT_E_FACTORS)
MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E, &planner.max_acceleration_mm_per_s2[E_AXIS + active_extruder], 100, 99000, _reset_acceleration_rates);
@ -3585,12 +3585,12 @@ void kill_screen(const char* lcd_msg) {
START_MENU();
MENU_BACK(MSG_MOTION);
MENU_ITEM_EDIT(float3, MSG_VX_JERK, &planner.max_jerk[X_AXIS], 1, 990);
MENU_ITEM_EDIT(float3, MSG_VY_JERK, &planner.max_jerk[Y_AXIS], 1, 990);
MENU_ITEM_EDIT(float3, MSG_VA_JERK, &planner.max_jerk[A_AXIS], 1, 990);
MENU_ITEM_EDIT(float3, MSG_VB_JERK, &planner.max_jerk[B_AXIS], 1, 990);
#if ENABLED(DELTA)
MENU_ITEM_EDIT(float3, MSG_VZ_JERK, &planner.max_jerk[Z_AXIS], 1, 990);
MENU_ITEM_EDIT(float3, MSG_VC_JERK, &planner.max_jerk[C_AXIS], 1, 990);
#else
MENU_ITEM_EDIT(float52, MSG_VZ_JERK, &planner.max_jerk[Z_AXIS], 0.1, 990);
MENU_ITEM_EDIT(float52, MSG_VC_JERK, &planner.max_jerk[C_AXIS], 0.1, 990);
#endif
MENU_ITEM_EDIT(float3, MSG_VE_JERK, &planner.max_jerk[E_AXIS], 1, 990);
@ -3602,9 +3602,9 @@ void kill_screen(const char* lcd_msg) {
START_MENU();
MENU_BACK(MSG_MOTION);
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_XSTEPS, &planner.axis_steps_per_mm[X_AXIS], 5, 9999, _planner_refresh_positioning);
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_YSTEPS, &planner.axis_steps_per_mm[Y_AXIS], 5, 9999, _planner_refresh_positioning);
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_ZSTEPS, &planner.axis_steps_per_mm[Z_AXIS], 5, 9999, _planner_refresh_positioning);
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_ASTEPS, &planner.axis_steps_per_mm[A_AXIS], 5, 9999, _planner_refresh_positioning);
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_BSTEPS, &planner.axis_steps_per_mm[B_AXIS], 5, 9999, _planner_refresh_positioning);
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_CSTEPS, &planner.axis_steps_per_mm[C_AXIS], 5, 9999, _planner_refresh_positioning);
#if ENABLED(DISTINCT_E_FACTORS)
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float62, MSG_ESTEPS, &planner.axis_steps_per_mm[E_AXIS + active_extruder], 5, 9999, _planner_refresh_positioning);

@ -580,6 +580,7 @@ float soft_endstop_min[XYZ] = { X_MIN_BED, Y_MIN_BED, Z_MIN_POS },
// The approximate length of each segment
const float inv_segments = 1.0 / float(segments),
cartesian_segment_mm = cartesian_mm * inv_segments,
segment_distance[XYZE] = {
xdiff * inv_segments,
ydiff * inv_segments,
@ -590,6 +591,7 @@ float soft_endstop_min[XYZ] = { X_MIN_BED, Y_MIN_BED, Z_MIN_POS },
// SERIAL_ECHOPAIR("mm=", cartesian_mm);
// SERIAL_ECHOPAIR(" seconds=", seconds);
// SERIAL_ECHOLNPAIR(" segments=", segments);
// SERIAL_ECHOLNPAIR(" segment_mm=", cartesian_segment_mm);
#if ENABLED(SCARA_FEEDRATE_SCALING)
// SCARA needs to scale the feed rate from mm/s to degrees/s
@ -626,10 +628,10 @@ float soft_endstop_min[XYZ] = { X_MIN_BED, Y_MIN_BED, Z_MIN_POS },
#if ENABLED(SCARA_FEEDRATE_SCALING)
// For SCARA scale the feed rate from mm/s to degrees/s
// i.e., Complete the angular vector in the given time.
planner.buffer_segment(delta[A_AXIS], delta[B_AXIS], raw[Z_AXIS], raw[E_AXIS], HYPOT(delta[A_AXIS] - oldA, delta[B_AXIS] - oldB) * inverse_secs, active_extruder);
planner.buffer_segment(delta[A_AXIS], delta[B_AXIS], raw[Z_AXIS], raw[E_AXIS], HYPOT(delta[A_AXIS] - oldA, delta[B_AXIS] - oldB) * inverse_secs, active_extruder, cartesian_segment_mm);
oldA = delta[A_AXIS]; oldB = delta[B_AXIS];
#else
planner.buffer_line(delta[A_AXIS], delta[B_AXIS], delta[C_AXIS], raw[E_AXIS], _feedrate_mm_s, active_extruder);
planner.buffer_line(delta[A_AXIS], delta[B_AXIS], delta[C_AXIS], raw[E_AXIS], _feedrate_mm_s, active_extruder, cartesian_segment_mm);
#endif
}
@ -637,9 +639,9 @@ float soft_endstop_min[XYZ] = { X_MIN_BED, Y_MIN_BED, Z_MIN_POS },
#if ENABLED(SCARA_FEEDRATE_SCALING)
inverse_kinematics(rtarget);
ADJUST_DELTA(rtarget);
planner.buffer_segment(delta[A_AXIS], delta[B_AXIS], rtarget[Z_AXIS], rtarget[E_AXIS], HYPOT(delta[A_AXIS] - oldA, delta[B_AXIS] - oldB) * inverse_secs, active_extruder);
planner.buffer_segment(delta[A_AXIS], delta[B_AXIS], rtarget[Z_AXIS], rtarget[E_AXIS], HYPOT(delta[A_AXIS] - oldA, delta[B_AXIS] - oldB) * inverse_secs, active_extruder, cartesian_segment_mm);
#else
planner.buffer_line_kinematic(rtarget, _feedrate_mm_s, active_extruder);
planner.buffer_line_kinematic(rtarget, _feedrate_mm_s, active_extruder, cartesian_segment_mm);
#endif
return false; // caller will update current_position
@ -685,6 +687,7 @@ float soft_endstop_min[XYZ] = { X_MIN_BED, Y_MIN_BED, Z_MIN_POS },
// The approximate length of each segment
const float inv_segments = 1.0 / float(segments),
cartesian_segment_mm = cartesian_mm * inv_segments,
segment_distance[XYZE] = {
xdiff * inv_segments,
ydiff * inv_segments,
@ -694,6 +697,7 @@ float soft_endstop_min[XYZ] = { X_MIN_BED, Y_MIN_BED, Z_MIN_POS },
// SERIAL_ECHOPAIR("mm=", cartesian_mm);
// SERIAL_ECHOLNPAIR(" segments=", segments);
// SERIAL_ECHOLNPAIR(" segment_mm=", cartesian_segment_mm);
// Get the raw current position as starting point
float raw[XYZE];
@ -708,12 +712,12 @@ float soft_endstop_min[XYZ] = { X_MIN_BED, Y_MIN_BED, Z_MIN_POS },
idle();
}
LOOP_XYZE(i) raw[i] += segment_distance[i];
planner.buffer_line_kinematic(raw, fr_mm_s, active_extruder);
planner.buffer_line_kinematic(raw, fr_mm_s, active_extruder, cartesian_segment_mm);
}
// Since segment_distance is only approximate,
// the final move must be to the exact destination.
planner.buffer_line_kinematic(destination, fr_mm_s, active_extruder);
planner.buffer_line_kinematic(destination, fr_mm_s, active_extruder, cartesian_segment_mm);
}
#endif // SEGMENT_LEVELED_MOVES

@ -726,11 +726,11 @@ void Planner::check_axes_activity() {
* fr_mm_s - (target) speed of the move
* extruder - target extruder
*/
void Planner::_buffer_steps(const int32_t (&target)[XYZE], float fr_mm_s, const uint8_t extruder) {
void Planner::_buffer_steps(const int32_t (&target)[ABCE], float fr_mm_s, const uint8_t extruder, const float &millimeters /*= 0.0*/) {
const int32_t da = target[X_AXIS] - position[X_AXIS],
db = target[Y_AXIS] - position[Y_AXIS],
dc = target[Z_AXIS] - position[Z_AXIS];
const int32_t da = target[A_AXIS] - position[A_AXIS],
db = target[B_AXIS] - position[B_AXIS],
dc = target[C_AXIS] - position[C_AXIS];
int32_t de = target[E_AXIS] - position[E_AXIS];
@ -832,13 +832,13 @@ void Planner::_buffer_steps(const int32_t (&target)[XYZE], float fr_mm_s, const
block->steps[C_AXIS] = labs(db - dc);
#else
// default non-h-bot planning
block->steps[X_AXIS] = labs(da);
block->steps[Y_AXIS] = labs(db);
block->steps[Z_AXIS] = labs(dc);
block->steps[A_AXIS] = labs(da);
block->steps[B_AXIS] = labs(db);
block->steps[C_AXIS] = labs(dc);
#endif
block->steps[E_AXIS] = esteps;
block->step_event_count = MAX4(block->steps[X_AXIS], block->steps[Y_AXIS], block->steps[Z_AXIS], esteps);
block->step_event_count = MAX4(block->steps[A_AXIS], block->steps[B_AXIS], block->steps[C_AXIS], esteps);
// Bail if this is a zero-length block
if (block->step_event_count < MIN_STEPS_PER_SEGMENT) return;
@ -1019,17 +1019,17 @@ void Planner::_buffer_steps(const int32_t (&target)[XYZE], float fr_mm_s, const
delta_mm[C_AXIS] = CORESIGN(db - dc) * steps_to_mm[C_AXIS];
#endif
#else
float delta_mm[XYZE];
delta_mm[X_AXIS] = da * steps_to_mm[X_AXIS];
delta_mm[Y_AXIS] = db * steps_to_mm[Y_AXIS];
delta_mm[Z_AXIS] = dc * steps_to_mm[Z_AXIS];
float delta_mm[ABCE];
delta_mm[A_AXIS] = da * steps_to_mm[A_AXIS];
delta_mm[B_AXIS] = db * steps_to_mm[B_AXIS];
delta_mm[C_AXIS] = dc * steps_to_mm[C_AXIS];
#endif
delta_mm[E_AXIS] = esteps_float * steps_to_mm[E_AXIS_N];
if (block->steps[X_AXIS] < MIN_STEPS_PER_SEGMENT && block->steps[Y_AXIS] < MIN_STEPS_PER_SEGMENT && block->steps[Z_AXIS] < MIN_STEPS_PER_SEGMENT) {
if (block->steps[A_AXIS] < MIN_STEPS_PER_SEGMENT && block->steps[B_AXIS] < MIN_STEPS_PER_SEGMENT && block->steps[C_AXIS] < MIN_STEPS_PER_SEGMENT) {
block->millimeters = FABS(delta_mm[E_AXIS]);
}
else {
else if (!millimeters) {
block->millimeters = SQRT(
#if CORE_IS_XY
sq(delta_mm[X_HEAD]) + sq(delta_mm[Y_HEAD]) + sq(delta_mm[Z_AXIS])
@ -1042,6 +1042,9 @@ void Planner::_buffer_steps(const int32_t (&target)[XYZE], float fr_mm_s, const
#endif
);
}
else
block->millimeters = millimeters;
const float inverse_millimeters = 1.0 / block->millimeters; // Inverse millimeters to remove multiple divides
// Calculate inverse time for this move. No divide by zero due to previous checks.
@ -1170,7 +1173,7 @@ void Planner::_buffer_steps(const int32_t (&target)[XYZE], float fr_mm_s, const
// Compute and limit the acceleration rate for the trapezoid generator.
const float steps_per_mm = block->step_event_count * inverse_millimeters;
uint32_t accel;
if (!block->steps[X_AXIS] && !block->steps[Y_AXIS] && !block->steps[Z_AXIS]) {
if (!block->steps[A_AXIS] && !block->steps[B_AXIS] && !block->steps[C_AXIS]) {
// convert to: acceleration steps/sec^2
accel = CEIL(retract_acceleration * steps_per_mm);
}
@ -1200,15 +1203,15 @@ void Planner::_buffer_steps(const int32_t (&target)[XYZE], float fr_mm_s, const
// Limit acceleration per axis
if (block->step_event_count <= cutoff_long) {
LIMIT_ACCEL_LONG(X_AXIS, 0);
LIMIT_ACCEL_LONG(Y_AXIS, 0);
LIMIT_ACCEL_LONG(Z_AXIS, 0);
LIMIT_ACCEL_LONG(A_AXIS, 0);
LIMIT_ACCEL_LONG(B_AXIS, 0);
LIMIT_ACCEL_LONG(C_AXIS, 0);
LIMIT_ACCEL_LONG(E_AXIS, ACCEL_IDX);
}
else {
LIMIT_ACCEL_FLOAT(X_AXIS, 0);
LIMIT_ACCEL_FLOAT(Y_AXIS, 0);
LIMIT_ACCEL_FLOAT(Z_AXIS, 0);
LIMIT_ACCEL_FLOAT(A_AXIS, 0);
LIMIT_ACCEL_FLOAT(B_AXIS, 0);
LIMIT_ACCEL_FLOAT(C_AXIS, 0);
LIMIT_ACCEL_FLOAT(E_AXIS, ACCEL_IDX);
}
}
@ -1225,9 +1228,9 @@ void Planner::_buffer_steps(const int32_t (&target)[XYZE], float fr_mm_s, const
// Compute path unit vector
double unit_vec[XYZ] = {
delta_mm[X_AXIS] * inverse_millimeters,
delta_mm[Y_AXIS] * inverse_millimeters,
delta_mm[Z_AXIS] * inverse_millimeters
delta_mm[A_AXIS] * inverse_millimeters,
delta_mm[B_AXIS] * inverse_millimeters,
delta_mm[C_AXIS] * inverse_millimeters
};
/*
@ -1417,11 +1420,12 @@ void Planner::_buffer_steps(const int32_t (&target)[XYZE], float fr_mm_s, const
*
* Leveling and kinematics should be applied ahead of calling this.
*
* a,b,c,e - target positions in mm and/or degrees
* fr_mm_s - (target) speed of the move
* extruder - target extruder
* a,b,c,e - target positions in mm and/or degrees
* fr_mm_s - (target) speed of the move
* extruder - target extruder
* millimeters - the length of the movement, if known
*/
void Planner::buffer_segment(const float &a, const float &b, const float &c, const float &e, const float &fr_mm_s, const uint8_t extruder) {
void Planner::buffer_segment(const float &a, const float &b, const float &c, const float &e, const float &fr_mm_s, const uint8_t extruder, const float &millimeters /*= 0.0*/) {
// When changing extruders recalculate steps corresponding to the E position
#if ENABLED(DISTINCT_E_FACTORS)
if (last_extruder != extruder && axis_steps_per_mm[E_AXIS_N] != axis_steps_per_mm[E_AXIS + last_extruder]) {
@ -1432,10 +1436,10 @@ void Planner::buffer_segment(const float &a, const float &b, const float &c, con
// The target position of the tool in absolute steps
// Calculate target position in absolute steps
const int32_t target[XYZE] = {
LROUND(a * axis_steps_per_mm[X_AXIS]),
LROUND(b * axis_steps_per_mm[Y_AXIS]),
LROUND(c * axis_steps_per_mm[Z_AXIS]),
const int32_t target[ABCE] = {
LROUND(a * axis_steps_per_mm[A_AXIS]),
LROUND(b * axis_steps_per_mm[B_AXIS]),
LROUND(c * axis_steps_per_mm[C_AXIS]),
LROUND(e * axis_steps_per_mm[E_AXIS_N])
};
@ -1513,7 +1517,7 @@ void Planner::buffer_segment(const float &a, const float &b, const float &c, con
if (!blocks_queued()) {
#define _BETWEEN(A) (position[A##_AXIS] + target[A##_AXIS]) >> 1
const int32_t between[XYZE] = { _BETWEEN(X), _BETWEEN(Y), _BETWEEN(Z), _BETWEEN(E) };
const int32_t between[ABCE] = { _BETWEEN(A), _BETWEEN(B), _BETWEEN(C), _BETWEEN(E) };
DISABLE_STEPPER_DRIVER_INTERRUPT();
#if ENABLED(LIN_ADVANCE)
@ -1521,7 +1525,7 @@ void Planner::buffer_segment(const float &a, const float &b, const float &c, con
lin_dist_e *= 0.5;
#endif
_buffer_steps(between, fr_mm_s, extruder);
_buffer_steps(between, fr_mm_s, extruder, millimeters * 0.5);
#if ENABLED(LIN_ADVANCE)
position_float[X_AXIS] = (position_float[X_AXIS] + a) * 0.5;
@ -1531,12 +1535,12 @@ void Planner::buffer_segment(const float &a, const float &b, const float &c, con
#endif
const uint8_t next = block_buffer_head;
_buffer_steps(target, fr_mm_s, extruder);
_buffer_steps(target, fr_mm_s, extruder, millimeters * 0.5);
SBI(block_buffer[next].flag, BLOCK_BIT_CONTINUED);
ENABLE_STEPPER_DRIVER_INTERRUPT();
}
else
_buffer_steps(target, fr_mm_s, extruder);
_buffer_steps(target, fr_mm_s, extruder, millimeters);
stepper.wake_up();
@ -1562,9 +1566,9 @@ void Planner::_set_position_mm(const float &a, const float &b, const float &c, c
#else
#define _EINDEX E_AXIS
#endif
const int32_t na = position[X_AXIS] = LROUND(a * axis_steps_per_mm[X_AXIS]),
nb = position[Y_AXIS] = LROUND(b * axis_steps_per_mm[Y_AXIS]),
nc = position[Z_AXIS] = LROUND(c * axis_steps_per_mm[Z_AXIS]),
const int32_t na = position[A_AXIS] = LROUND(a * axis_steps_per_mm[A_AXIS]),
nb = position[B_AXIS] = LROUND(b * axis_steps_per_mm[B_AXIS]),
nc = position[C_AXIS] = LROUND(c * axis_steps_per_mm[C_AXIS]),
ne = position[E_AXIS] = LROUND(e * axis_steps_per_mm[_EINDEX]);
#if ENABLED(LIN_ADVANCE)
position_float[X_AXIS] = a;

@ -416,8 +416,9 @@ class Planner {
* target - target position in steps units
* fr_mm_s - (target) speed of the move
* extruder - target extruder
* millimeters - the length of the movement, if known
*/
static void _buffer_steps(const int32_t (&target)[XYZE], float fr_mm_s, const uint8_t extruder);
static void _buffer_steps(const int32_t (&target)[XYZE], float fr_mm_s, const uint8_t extruder, const float &millimeters = 0.0);
/**
* Planner::buffer_segment
@ -426,11 +427,12 @@ class Planner {
*
* Leveling and kinematics should be applied ahead of calling this.
*
* a,b,c,e - target positions in mm and/or degrees
* fr_mm_s - (target) speed of the move
* extruder - target extruder
* a,b,c,e - target positions in mm and/or degrees
* fr_mm_s - (target) speed of the move
* extruder - target extruder
* millimeters - the length of the movement, if known
*/
static void buffer_segment(const float &a, const float &b, const float &c, const float &e, const float &fr_mm_s, const uint8_t extruder);
static void buffer_segment(const float &a, const float &b, const float &c, const float &e, const float &fr_mm_s, const uint8_t extruder, const float &millimeters = 0.0);
static void _set_position_mm(const float &a, const float &b, const float &c, const float &e);
@ -445,12 +447,13 @@ class Planner {
* rx,ry,rz,e - target position in mm or degrees
* fr_mm_s - (target) speed of the move (mm/s)
* extruder - target extruder
* millimeters - the length of the movement, if known
*/
FORCE_INLINE static void buffer_line(ARG_X, ARG_Y, ARG_Z, const float &e, const float &fr_mm_s, const uint8_t extruder) {
FORCE_INLINE static void buffer_line(ARG_X, ARG_Y, ARG_Z, const float &e, const float &fr_mm_s, const uint8_t extruder, const float millimeters = 0.0) {
#if PLANNER_LEVELING && IS_CARTESIAN
apply_leveling(rx, ry, rz);
#endif
buffer_segment(rx, ry, rz, e, fr_mm_s, extruder);
buffer_segment(rx, ry, rz, e, fr_mm_s, extruder, millimeters);
}
/**
@ -458,11 +461,12 @@ class Planner {
* The target is cartesian, it's translated to delta/scara if
* needed.
*
* cart - x,y,z,e CARTESIAN target in mm
* fr_mm_s - (target) speed of the move (mm/s)
* extruder - target extruder
* cart - x,y,z,e CARTESIAN target in mm
* fr_mm_s - (target) speed of the move (mm/s)
* extruder - target extruder
* millimeters - the length of the movement, if known
*/
FORCE_INLINE static void buffer_line_kinematic(const float (&cart)[XYZE], const float &fr_mm_s, const uint8_t extruder) {
FORCE_INLINE static void buffer_line_kinematic(const float (&cart)[XYZE], const float &fr_mm_s, const uint8_t extruder, const float millimeters = 0.0) {
#if PLANNER_LEVELING
float raw[XYZ] = { cart[X_AXIS], cart[Y_AXIS], cart[Z_AXIS] };
apply_leveling(raw);
@ -471,9 +475,9 @@ class Planner {
#endif
#if IS_KINEMATIC
inverse_kinematics(raw);
buffer_segment(delta[A_AXIS], delta[B_AXIS], delta[C_AXIS], cart[E_AXIS], fr_mm_s, extruder);
buffer_segment(delta[A_AXIS], delta[B_AXIS], delta[C_AXIS], cart[E_AXIS], fr_mm_s, extruder, millimeters);
#else
buffer_segment(raw[X_AXIS], raw[Y_AXIS], raw[Z_AXIS], cart[E_AXIS], fr_mm_s, extruder);
buffer_segment(raw[X_AXIS], raw[Y_AXIS], raw[Z_AXIS], cart[E_AXIS], fr_mm_s, extruder, millimeters);
#endif
}

Loading…
Cancel
Save