🐛 Fix and improve Polargraph (#24847)
Co-Authored-By: Scott Lahteine <thinkyhead@users.noreply.github.com>
This commit is contained in:
parent
b3e7d1e91e
commit
031ff2d024
@ -111,20 +111,29 @@ void HostUI::action(FSTR_P const fstr, const bool eol) {
|
|||||||
if (eol) SERIAL_EOL();
|
if (eol) SERIAL_EOL();
|
||||||
}
|
}
|
||||||
|
|
||||||
void HostUI::prompt_plus(FSTR_P const ptype, FSTR_P const fstr, const char extra_char/*='\0'*/) {
|
void HostUI::prompt_plus(const bool pgm, FSTR_P const ptype, const char * const str, const char extra_char/*='\0'*/) {
|
||||||
prompt(ptype, false);
|
prompt(ptype, false);
|
||||||
PORT_REDIRECT(SerialMask::All);
|
PORT_REDIRECT(SerialMask::All);
|
||||||
SERIAL_CHAR(' ');
|
SERIAL_CHAR(' ');
|
||||||
SERIAL_ECHOF(fstr);
|
if (pgm)
|
||||||
|
SERIAL_ECHOPGM_P(str);
|
||||||
|
else
|
||||||
|
SERIAL_ECHO(str);
|
||||||
if (extra_char != '\0') SERIAL_CHAR(extra_char);
|
if (extra_char != '\0') SERIAL_CHAR(extra_char);
|
||||||
SERIAL_EOL();
|
SERIAL_EOL();
|
||||||
}
|
}
|
||||||
|
|
||||||
void HostUI::prompt_begin(const PromptReason reason, FSTR_P const fstr, const char extra_char/*='\0'*/) {
|
void HostUI::prompt_begin(const PromptReason reason, FSTR_P const fstr, const char extra_char/*='\0'*/) {
|
||||||
prompt_end();
|
prompt_end();
|
||||||
host_prompt_reason = reason;
|
host_prompt_reason = reason;
|
||||||
prompt_plus(F("begin"), fstr, extra_char);
|
prompt_plus(F("begin"), fstr, extra_char);
|
||||||
}
|
}
|
||||||
void HostUI::prompt_button(FSTR_P const fstr) { prompt_plus(F("button"), fstr); }
|
void HostUI::prompt_begin(const PromptReason reason, const char * const cstr, const char extra_char/*='\0'*/) {
|
||||||
|
prompt_end();
|
||||||
|
host_prompt_reason = reason;
|
||||||
|
prompt_plus(F("begin"), cstr, extra_char);
|
||||||
|
}
|
||||||
|
|
||||||
void HostUI::prompt_end() { prompt(F("end")); }
|
void HostUI::prompt_end() { prompt(F("end")); }
|
||||||
void HostUI::prompt_show() { prompt(F("show")); }
|
void HostUI::prompt_show() { prompt(F("show")); }
|
||||||
|
|
||||||
@ -133,14 +142,26 @@ void HostUI::action(FSTR_P const fstr, const bool eol) {
|
|||||||
if (btn2) prompt_button(btn2);
|
if (btn2) prompt_button(btn2);
|
||||||
prompt_show();
|
prompt_show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HostUI::prompt_button(FSTR_P const fstr) { prompt_plus(F("button"), fstr); }
|
||||||
|
void HostUI::prompt_button(const char * const cstr) { prompt_plus(F("button"), cstr); }
|
||||||
|
|
||||||
void HostUI::prompt_do(const PromptReason reason, FSTR_P const fstr, FSTR_P const btn1/*=nullptr*/, FSTR_P const btn2/*=nullptr*/) {
|
void HostUI::prompt_do(const PromptReason reason, FSTR_P const fstr, FSTR_P const btn1/*=nullptr*/, FSTR_P const btn2/*=nullptr*/) {
|
||||||
prompt_begin(reason, fstr);
|
prompt_begin(reason, fstr);
|
||||||
_prompt_show(btn1, btn2);
|
_prompt_show(btn1, btn2);
|
||||||
}
|
}
|
||||||
|
void HostUI::prompt_do(const PromptReason reason, const char * const cstr, FSTR_P const btn1/*=nullptr*/, FSTR_P const btn2/*=nullptr*/) {
|
||||||
|
prompt_begin(reason, cstr);
|
||||||
|
_prompt_show(btn1, btn2);
|
||||||
|
}
|
||||||
void HostUI::prompt_do(const PromptReason reason, FSTR_P const fstr, const char extra_char, FSTR_P const btn1/*=nullptr*/, FSTR_P const btn2/*=nullptr*/) {
|
void HostUI::prompt_do(const PromptReason reason, FSTR_P const fstr, const char extra_char, FSTR_P const btn1/*=nullptr*/, FSTR_P const btn2/*=nullptr*/) {
|
||||||
prompt_begin(reason, fstr, extra_char);
|
prompt_begin(reason, fstr, extra_char);
|
||||||
_prompt_show(btn1, btn2);
|
_prompt_show(btn1, btn2);
|
||||||
}
|
}
|
||||||
|
void HostUI::prompt_do(const PromptReason reason, const char * const cstr, const char extra_char, FSTR_P const btn1/*=nullptr*/, FSTR_P const btn2/*=nullptr*/) {
|
||||||
|
prompt_begin(reason, cstr, extra_char);
|
||||||
|
_prompt_show(btn1, btn2);
|
||||||
|
}
|
||||||
|
|
||||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||||
void HostUI::filament_load_prompt() {
|
void HostUI::filament_load_prompt() {
|
||||||
|
@ -79,7 +79,14 @@ class HostUI {
|
|||||||
#if ENABLED(HOST_PROMPT_SUPPORT)
|
#if ENABLED(HOST_PROMPT_SUPPORT)
|
||||||
private:
|
private:
|
||||||
static void prompt(FSTR_P const ptype, const bool eol=true);
|
static void prompt(FSTR_P const ptype, const bool eol=true);
|
||||||
static void prompt_plus(FSTR_P const ptype, FSTR_P const fstr, const char extra_char='\0');
|
static void prompt_plus(const bool pgm, FSTR_P const ptype, const char * const str, const char extra_char='\0');
|
||||||
|
static void prompt_plus(FSTR_P const ptype, FSTR_P const fstr, const char extra_char='\0') {
|
||||||
|
prompt_plus(true, ptype, FTOP(fstr), extra_char);
|
||||||
|
}
|
||||||
|
static void prompt_plus(FSTR_P const ptype, const char * const cstr, const char extra_char='\0') {
|
||||||
|
prompt_plus(false, ptype, cstr, extra_char);
|
||||||
|
}
|
||||||
|
|
||||||
static void prompt_show();
|
static void prompt_show();
|
||||||
static void _prompt_show(FSTR_P const btn1, FSTR_P const btn2);
|
static void _prompt_show(FSTR_P const btn1, FSTR_P const btn2);
|
||||||
|
|
||||||
@ -93,10 +100,17 @@ class HostUI {
|
|||||||
static void notify(const char * const message);
|
static void notify(const char * const message);
|
||||||
|
|
||||||
static void prompt_begin(const PromptReason reason, FSTR_P const fstr, const char extra_char='\0');
|
static void prompt_begin(const PromptReason reason, FSTR_P const fstr, const char extra_char='\0');
|
||||||
static void prompt_button(FSTR_P const fstr);
|
static void prompt_begin(const PromptReason reason, const char * const cstr, const char extra_char='\0');
|
||||||
static void prompt_end();
|
static void prompt_end();
|
||||||
|
|
||||||
|
static void prompt_button(FSTR_P const fstr);
|
||||||
|
static void prompt_button(const char * const cstr);
|
||||||
|
|
||||||
static void prompt_do(const PromptReason reason, FSTR_P const pstr, FSTR_P const btn1=nullptr, FSTR_P const btn2=nullptr);
|
static void prompt_do(const PromptReason reason, FSTR_P const pstr, FSTR_P const btn1=nullptr, FSTR_P const btn2=nullptr);
|
||||||
|
static void prompt_do(const PromptReason reason, const char * const cstr, FSTR_P const btn1=nullptr, FSTR_P const btn2=nullptr);
|
||||||
static void prompt_do(const PromptReason reason, FSTR_P const pstr, const char extra_char, FSTR_P const btn1=nullptr, FSTR_P const btn2=nullptr);
|
static void prompt_do(const PromptReason reason, FSTR_P const pstr, const char extra_char, FSTR_P const btn1=nullptr, FSTR_P const btn2=nullptr);
|
||||||
|
static void prompt_do(const PromptReason reason, const char * const cstr, const char extra_char, FSTR_P const btn1=nullptr, FSTR_P const btn2=nullptr);
|
||||||
|
|
||||||
static void prompt_open(const PromptReason reason, FSTR_P const pstr, FSTR_P const btn1=nullptr, FSTR_P const btn2=nullptr) {
|
static void prompt_open(const PromptReason reason, FSTR_P const pstr, FSTR_P const btn1=nullptr, FSTR_P const btn2=nullptr) {
|
||||||
if (host_prompt_reason == PROMPT_NOT_DEFINED) prompt_do(reason, pstr, btn1, btn2);
|
if (host_prompt_reason == PROMPT_NOT_DEFINED) prompt_do(reason, pstr, btn1, btn2);
|
||||||
}
|
}
|
||||||
|
@ -167,8 +167,6 @@
|
|||||||
if (parser.seenval('T')) draw_area_max.y = parser.value_linear_units();
|
if (parser.seenval('T')) draw_area_max.y = parser.value_linear_units();
|
||||||
if (parser.seenval('B')) draw_area_min.y = parser.value_linear_units();
|
if (parser.seenval('B')) draw_area_min.y = parser.value_linear_units();
|
||||||
if (parser.seenval('H')) polargraph_max_belt_len = parser.value_linear_units();
|
if (parser.seenval('H')) polargraph_max_belt_len = parser.value_linear_units();
|
||||||
draw_area_size.x = draw_area_max.x - draw_area_min.x;
|
|
||||||
draw_area_size.y = draw_area_max.y - draw_area_min.y;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GcodeSuite::M665_report(const bool forReplay/*=true*/) {
|
void GcodeSuite::M665_report(const bool forReplay/*=true*/) {
|
||||||
|
@ -85,7 +85,12 @@ void GcodeSuite::M0_M1() {
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TERN_(HOST_PROMPT_SUPPORT, hostui.prompt_do(PROMPT_USER_CONTINUE, parser.codenum ? F("M1 Stop") : F("M0 Stop"), FPSTR(CONTINUE_STR)));
|
#if ENABLED(HOST_PROMPT_SUPPORT)
|
||||||
|
if (parser.string_arg)
|
||||||
|
hostui.prompt_do(PROMPT_USER_CONTINUE, parser.string_arg, FPSTR(CONTINUE_STR));
|
||||||
|
else
|
||||||
|
hostui.prompt_do(PROMPT_USER_CONTINUE, parser.codenum ? F("M1 Stop") : F("M0 Stop"), FPSTR(CONTINUE_STR));
|
||||||
|
#endif
|
||||||
|
|
||||||
TERN_(HAS_RESUME_CONTINUE, wait_for_user_response(ms));
|
TERN_(HAS_RESUME_CONTINUE, wait_for_user_response(ms));
|
||||||
|
|
||||||
|
@ -155,7 +155,7 @@
|
|||||||
#define W_BED_SIZE W_MAX_LENGTH
|
#define W_BED_SIZE W_MAX_LENGTH
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Require 0,0 bed center for Delta and SCARA
|
// Require 0,0 bed center for Delta, SCARA, and Polargraph
|
||||||
#if IS_KINEMATIC
|
#if IS_KINEMATIC
|
||||||
#define BED_CENTER_AT_0_0
|
#define BED_CENTER_AT_0_0
|
||||||
#endif
|
#endif
|
||||||
|
@ -829,7 +829,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
|||||||
/**
|
/**
|
||||||
* Granular software endstops (Marlin >= 1.1.7)
|
* Granular software endstops (Marlin >= 1.1.7)
|
||||||
*/
|
*/
|
||||||
#if ENABLED(MIN_SOFTWARE_ENDSTOPS) && DISABLED(MIN_SOFTWARE_ENDSTOP_Z)
|
#if ENABLED(MIN_SOFTWARE_ENDSTOPS) && NONE(MIN_SOFTWARE_ENDSTOP_Z, POLARGRAPH)
|
||||||
#if IS_KINEMATIC
|
#if IS_KINEMATIC
|
||||||
#error "MIN_SOFTWARE_ENDSTOPS on DELTA/SCARA also requires MIN_SOFTWARE_ENDSTOP_Z."
|
#error "MIN_SOFTWARE_ENDSTOPS on DELTA/SCARA also requires MIN_SOFTWARE_ENDSTOP_Z."
|
||||||
#elif NONE(MIN_SOFTWARE_ENDSTOP_X, MIN_SOFTWARE_ENDSTOP_Y)
|
#elif NONE(MIN_SOFTWARE_ENDSTOP_X, MIN_SOFTWARE_ENDSTOP_Y)
|
||||||
@ -837,7 +837,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(MAX_SOFTWARE_ENDSTOPS) && DISABLED(MAX_SOFTWARE_ENDSTOP_Z)
|
#if ENABLED(MAX_SOFTWARE_ENDSTOPS) && NONE(MAX_SOFTWARE_ENDSTOP_Z, POLARGRAPH)
|
||||||
#if IS_KINEMATIC
|
#if IS_KINEMATIC
|
||||||
#error "MAX_SOFTWARE_ENDSTOPS on DELTA/SCARA also requires MAX_SOFTWARE_ENDSTOP_Z."
|
#error "MAX_SOFTWARE_ENDSTOPS on DELTA/SCARA also requires MAX_SOFTWARE_ENDSTOP_Z."
|
||||||
#elif NONE(MAX_SOFTWARE_ENDSTOP_X, MAX_SOFTWARE_ENDSTOP_Y)
|
#elif NONE(MAX_SOFTWARE_ENDSTOP_X, MAX_SOFTWARE_ENDSTOP_Y)
|
||||||
|
@ -418,6 +418,12 @@ namespace Language_en {
|
|||||||
LSTR MSG_FILAMENT_DIAM_E = _UxGT("Fil. Dia. *");
|
LSTR MSG_FILAMENT_DIAM_E = _UxGT("Fil. Dia. *");
|
||||||
LSTR MSG_FILAMENT_UNLOAD = _UxGT("Unload mm");
|
LSTR MSG_FILAMENT_UNLOAD = _UxGT("Unload mm");
|
||||||
LSTR MSG_FILAMENT_LOAD = _UxGT("Load mm");
|
LSTR MSG_FILAMENT_LOAD = _UxGT("Load mm");
|
||||||
|
LSTR MSG_SEGMENTS_PER_SECOND = _UxGT("Segments/Sec");
|
||||||
|
LSTR MSG_DRAW_MIN_X = _UxGT("Draw Min X");
|
||||||
|
LSTR MSG_DRAW_MAX_X = _UxGT("Draw Max X");
|
||||||
|
LSTR MSG_DRAW_MIN_Y = _UxGT("Draw Min Y");
|
||||||
|
LSTR MSG_DRAW_MAX_Y = _UxGT("Draw Max Y");
|
||||||
|
LSTR MSG_MAX_BELT_LEN = _UxGT("Max Belt Len");
|
||||||
LSTR MSG_ADVANCE_K = _UxGT("Advance K");
|
LSTR MSG_ADVANCE_K = _UxGT("Advance K");
|
||||||
LSTR MSG_ADVANCE_K_E = _UxGT("Advance K *");
|
LSTR MSG_ADVANCE_K_E = _UxGT("Advance K *");
|
||||||
LSTR MSG_CONTRAST = _UxGT("LCD Contrast");
|
LSTR MSG_CONTRAST = _UxGT("LCD Contrast");
|
||||||
|
@ -632,10 +632,20 @@ void menu_advanced_settings() {
|
|||||||
|
|
||||||
#if DISABLED(SLIM_LCD_MENUS)
|
#if DISABLED(SLIM_LCD_MENUS)
|
||||||
|
|
||||||
|
#if ENABLED(POLARGRAPH)
|
||||||
|
// M665 - Polargraph Settings
|
||||||
|
if (!is_busy) {
|
||||||
|
EDIT_ITEM_FAST(float4, MSG_SEGMENTS_PER_SECOND, &segments_per_second, 100, 9999); // M665 S
|
||||||
|
EDIT_ITEM_FAST(float51sign, MSG_DRAW_MIN_X, &draw_area_min.x, X_MIN_POS, draw_area_max.x - 10); // M665 L
|
||||||
|
EDIT_ITEM_FAST(float51sign, MSG_DRAW_MAX_X, &draw_area_max.x, draw_area_min.x + 10, X_MAX_POS); // M665 R
|
||||||
|
EDIT_ITEM_FAST(float51sign, MSG_DRAW_MIN_Y, &draw_area_min.y, Y_MIN_POS, draw_area_max.y - 10); // M665 T
|
||||||
|
EDIT_ITEM_FAST(float51sign, MSG_DRAW_MAX_Y, &draw_area_max.y, draw_area_min.y + 10, Y_MAX_POS); // M665 B
|
||||||
|
EDIT_ITEM_FAST(float51sign, MSG_MAX_BELT_LEN, &polargraph_max_belt_len, 500, 2000); // M665 H
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if HAS_M206_COMMAND
|
#if HAS_M206_COMMAND
|
||||||
//
|
// M428 - Set Home Offsets
|
||||||
// Set Home Offsets
|
|
||||||
//
|
|
||||||
ACTION_ITEM(MSG_SET_HOME_OFFSETS, []{ queue.inject(F("M428")); ui.return_to_status(); });
|
ACTION_ITEM(MSG_SET_HOME_OFFSETS, []{ queue.inject(F("M428")); ui.return_to_status(); });
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -341,7 +341,6 @@ void report_current_position_projected() {
|
|||||||
can_reach = (
|
can_reach = (
|
||||||
a < polargraph_max_belt_len + 1
|
a < polargraph_max_belt_len + 1
|
||||||
&& b < polargraph_max_belt_len + 1
|
&& b < polargraph_max_belt_len + 1
|
||||||
&& (a + b) > _MIN(draw_area_size.x, draw_area_size.y)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@ -562,7 +561,8 @@ void do_blocking_move_to(NUM_AXIS_ARGS(const float), const_feedRate_t fr_mm_s/*=
|
|||||||
const feedRate_t w_feedrate = fr_mm_s ?: homing_feedrate(W_AXIS)
|
const feedRate_t w_feedrate = fr_mm_s ?: homing_feedrate(W_AXIS)
|
||||||
);
|
);
|
||||||
|
|
||||||
#if IS_KINEMATIC
|
#if IS_KINEMATIC && DISABLED(POLARGRAPH)
|
||||||
|
// kinematic machines are expected to home to a point 1.5x their range? never reachable.
|
||||||
if (!position_is_reachable(x, y)) return;
|
if (!position_is_reachable(x, y)) return;
|
||||||
destination = current_position; // sync destination at the start
|
destination = current_position; // sync destination at the start
|
||||||
#endif
|
#endif
|
||||||
@ -919,11 +919,16 @@ void restore_feedrate_and_scaling() {
|
|||||||
constexpr xy_pos_t offs{0};
|
constexpr xy_pos_t offs{0};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (TERN1(IS_SCARA, axis_was_homed(X_AXIS) && axis_was_homed(Y_AXIS))) {
|
#if ENABLED(POLARGRAPH)
|
||||||
const float dist_2 = HYPOT2(target.x - offs.x, target.y - offs.y);
|
LIMIT(target.x, draw_area_min.x, draw_area_max.x);
|
||||||
if (dist_2 > delta_max_radius_2)
|
LIMIT(target.y, draw_area_min.y, draw_area_max.y);
|
||||||
target *= float(delta_max_radius / SQRT(dist_2)); // 200 / 300 = 0.66
|
#else
|
||||||
}
|
if (TERN1(IS_SCARA, axis_was_homed(X_AXIS) && axis_was_homed(Y_AXIS))) {
|
||||||
|
const float dist_2 = HYPOT2(target.x - offs.x, target.y - offs.y);
|
||||||
|
if (dist_2 > delta_max_radius_2)
|
||||||
|
target *= float(delta_max_radius / SQRT(dist_2)); // 200 / 300 = 0.66
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
@ -2244,7 +2244,6 @@ bool Planner::_populate_block(
|
|||||||
|
|
||||||
TERN_(MIXING_EXTRUDER, mixer.populate_block(block->b_color));
|
TERN_(MIXING_EXTRUDER, mixer.populate_block(block->b_color));
|
||||||
|
|
||||||
|
|
||||||
#if HAS_FAN
|
#if HAS_FAN
|
||||||
FANS_LOOP(i) block->fan_speed[i] = thermalManager.fan_speed[i];
|
FANS_LOOP(i) block->fan_speed[i] = thermalManager.fan_speed[i];
|
||||||
#endif
|
#endif
|
||||||
|
@ -37,17 +37,12 @@
|
|||||||
#include "../lcd/marlinui.h"
|
#include "../lcd/marlinui.h"
|
||||||
#include "../MarlinCore.h"
|
#include "../MarlinCore.h"
|
||||||
|
|
||||||
float segments_per_second; // Initialized by settings.load()
|
// Initialized by settings.load()
|
||||||
|
float segments_per_second, polargraph_max_belt_len;
|
||||||
xy_pos_t draw_area_min = { X_MIN_POS, Y_MIN_POS },
|
xy_pos_t draw_area_min, draw_area_max;
|
||||||
draw_area_max = { X_MAX_POS, Y_MAX_POS };
|
|
||||||
|
|
||||||
xy_float_t draw_area_size = { X_MAX_POS - X_MIN_POS, Y_MAX_POS - Y_MIN_POS };
|
|
||||||
|
|
||||||
float polargraph_max_belt_len = HYPOT(draw_area_size.x, draw_area_size.y);
|
|
||||||
|
|
||||||
void inverse_kinematics(const xyz_pos_t &raw) {
|
void inverse_kinematics(const xyz_pos_t &raw) {
|
||||||
const float x1 = raw.x - (draw_area_min.x), x2 = (draw_area_max.x) - raw.x, y = raw.y - (draw_area_max.y);
|
const float x1 = raw.x - draw_area_min.x, x2 = draw_area_max.x - raw.x, y = raw.y - draw_area_max.y;
|
||||||
delta.set(HYPOT(x1, y), HYPOT(x2, y), raw.z);
|
delta.set(HYPOT(x1, y), HYPOT(x2, y), raw.z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,7 +30,6 @@
|
|||||||
|
|
||||||
extern float segments_per_second;
|
extern float segments_per_second;
|
||||||
extern xy_pos_t draw_area_min, draw_area_max;
|
extern xy_pos_t draw_area_min, draw_area_max;
|
||||||
extern xy_float_t draw_area_size;
|
|
||||||
extern float polargraph_max_belt_len;
|
extern float polargraph_max_belt_len;
|
||||||
|
|
||||||
void inverse_kinematics(const xyz_pos_t &raw);
|
void inverse_kinematics(const xyz_pos_t &raw);
|
||||||
|
@ -257,7 +257,7 @@ typedef struct SettingsDataStruct {
|
|||||||
// HAS_BED_PROBE
|
// HAS_BED_PROBE
|
||||||
//
|
//
|
||||||
|
|
||||||
xyz_pos_t probe_offset;
|
xyz_pos_t probe_offset; // M851 X Y Z
|
||||||
|
|
||||||
//
|
//
|
||||||
// ABL_PLANAR
|
// ABL_PLANAR
|
||||||
@ -319,7 +319,7 @@ typedef struct SettingsDataStruct {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// Kinematic Settings
|
// Kinematic Settings (Delta, SCARA, TPARA, Polargraph...)
|
||||||
//
|
//
|
||||||
#if IS_KINEMATIC
|
#if IS_KINEMATIC
|
||||||
float segments_per_second; // M665 S
|
float segments_per_second; // M665 S
|
||||||
@ -330,7 +330,11 @@ typedef struct SettingsDataStruct {
|
|||||||
delta_diagonal_rod; // M665 L
|
delta_diagonal_rod; // M665 L
|
||||||
abc_float_t delta_tower_angle_trim, // M665 X Y Z
|
abc_float_t delta_tower_angle_trim, // M665 X Y Z
|
||||||
delta_diagonal_rod_trim; // M665 A B C
|
delta_diagonal_rod_trim; // M665 A B C
|
||||||
|
#elif ENABLED(POLARGRAPH)
|
||||||
|
xy_pos_t draw_area_min, draw_area_max; // M665 L R T B
|
||||||
|
float polargraph_max_belt_len; // M665 H
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -468,7 +472,7 @@ typedef struct SettingsDataStruct {
|
|||||||
//
|
//
|
||||||
// SKEW_CORRECTION
|
// SKEW_CORRECTION
|
||||||
//
|
//
|
||||||
skew_factor_t planner_skew_factor; // M852 I J K planner.skew_factor
|
skew_factor_t planner_skew_factor; // M852 I J K
|
||||||
|
|
||||||
//
|
//
|
||||||
// ADVANCED_PAUSE_FEATURE
|
// ADVANCED_PAUSE_FEATURE
|
||||||
@ -988,7 +992,7 @@ void MarlinSettings::postprocess() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Kinematic Settings
|
// Kinematic Settings (Delta, SCARA, TPARA, Polargraph...)
|
||||||
//
|
//
|
||||||
#if IS_KINEMATIC
|
#if IS_KINEMATIC
|
||||||
{
|
{
|
||||||
@ -1001,6 +1005,11 @@ void MarlinSettings::postprocess() {
|
|||||||
EEPROM_WRITE(delta_diagonal_rod); // 1 float
|
EEPROM_WRITE(delta_diagonal_rod); // 1 float
|
||||||
EEPROM_WRITE(delta_tower_angle_trim); // 3 floats
|
EEPROM_WRITE(delta_tower_angle_trim); // 3 floats
|
||||||
EEPROM_WRITE(delta_diagonal_rod_trim); // 3 floats
|
EEPROM_WRITE(delta_diagonal_rod_trim); // 3 floats
|
||||||
|
#elif ENABLED(POLARGRAPH)
|
||||||
|
_FIELD_TEST(draw_area_min);
|
||||||
|
EEPROM_WRITE(draw_area_min); // 2 floats
|
||||||
|
EEPROM_WRITE(draw_area_max); // 2 floats
|
||||||
|
EEPROM_WRITE(polargraph_max_belt_len); // 1 float
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -1923,7 +1932,7 @@ void MarlinSettings::postprocess() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Kinematic Segments-per-second
|
// Kinematic Settings (Delta, SCARA, TPARA, Polargraph...)
|
||||||
//
|
//
|
||||||
#if IS_KINEMATIC
|
#if IS_KINEMATIC
|
||||||
{
|
{
|
||||||
@ -1936,6 +1945,11 @@ void MarlinSettings::postprocess() {
|
|||||||
EEPROM_READ(delta_diagonal_rod); // 1 float
|
EEPROM_READ(delta_diagonal_rod); // 1 float
|
||||||
EEPROM_READ(delta_tower_angle_trim); // 3 floats
|
EEPROM_READ(delta_tower_angle_trim); // 3 floats
|
||||||
EEPROM_READ(delta_diagonal_rod_trim); // 3 floats
|
EEPROM_READ(delta_diagonal_rod_trim); // 3 floats
|
||||||
|
#elif ENABLED(POLARGRAPH)
|
||||||
|
_FIELD_TEST(draw_area_min);
|
||||||
|
EEPROM_READ(draw_area_min); // 2 floats
|
||||||
|
EEPROM_READ(draw_area_max); // 2 floats
|
||||||
|
EEPROM_READ(polargraph_max_belt_len); // 1 float
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -2979,7 +2993,7 @@ void MarlinSettings::reset() {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// Kinematic settings
|
// Kinematic Settings (Delta, SCARA, TPARA, Polargraph...)
|
||||||
//
|
//
|
||||||
|
|
||||||
#if IS_KINEMATIC
|
#if IS_KINEMATIC
|
||||||
@ -2996,6 +3010,10 @@ void MarlinSettings::reset() {
|
|||||||
delta_diagonal_rod = DELTA_DIAGONAL_ROD;
|
delta_diagonal_rod = DELTA_DIAGONAL_ROD;
|
||||||
delta_tower_angle_trim = dta;
|
delta_tower_angle_trim = dta;
|
||||||
delta_diagonal_rod_trim = ddr;
|
delta_diagonal_rod_trim = ddr;
|
||||||
|
#elif ENABLED(POLARGRAPH)
|
||||||
|
draw_area_min.set(X_MIN_POS, Y_MIN_POS);
|
||||||
|
draw_area_max.set(X_MAX_POS, Y_MAX_POS);
|
||||||
|
polargraph_max_belt_len = POLARGRAPH_MAX_BELT_LEN;
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -3492,9 +3510,7 @@ void MarlinSettings::reset() {
|
|||||||
//
|
//
|
||||||
// LCD Preheat Settings
|
// LCD Preheat Settings
|
||||||
//
|
//
|
||||||
#if HAS_PREHEAT
|
TERN_(HAS_PREHEAT, gcode.M145_report(forReplay));
|
||||||
gcode.M145_report(forReplay);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// PID
|
// PID
|
||||||
|
Loading…
Reference in New Issue
Block a user