From 645f31bc529de487a3d33b556a045d6d0cf15c55 Mon Sep 17 00:00:00 2001 From: Joseph Coffland Date: Sun, 11 Sep 2016 06:11:03 -0700 Subject: [PATCH] Use spindle and feed overrides --- src/machine.c | 9 ++++++--- src/plan/arc.c | 4 ++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/machine.c b/src/machine.c index 00ab787..ef71fab 100644 --- a/src/machine.c +++ b/src/machine.c @@ -116,12 +116,12 @@ feed_mode_t mach_get_feed_mode() {return mach.gm.feed_mode;} float mach_get_feed_override() { - return mach.gm.feed_override_enable ? mach.gm.feed_override : 0; + return mach.gm.feed_override_enable ? mach.gm.feed_override : 1; } float mach_get_spindle_override() { - return mach.gm.spindle_override_enable ? mach.gm.spindle_override : 0; + return mach.gm.spindle_override_enable ? mach.gm.spindle_override : 1; } @@ -150,7 +150,7 @@ static stat_t _exec_spindle_speed(mp_buffer_t *bf) { /// Queue the S parameter to the planner buffer void mach_set_spindle_speed(float speed) { mp_buffer_t *bf = mp_queue_get_tail(); - bf->value = speed; + bf->value = speed * mach_get_spindle_override(); mp_queue_push(_exec_spindle_speed, mach_get_line()); } @@ -362,6 +362,9 @@ float mach_calc_move_time(const float axis_length[], } } + // Apply feed override + max_time /= mach_get_feed_override(); + // Compute time required for rate-limiting axis for (int axis = 0; axis < AXES; axis++) { float time = fabs(axis_length[axis]) / diff --git a/src/plan/arc.c b/src/plan/arc.c index 92c86b7..8d8666b 100644 --- a/src/plan/arc.c +++ b/src/plan/arc.c @@ -85,6 +85,10 @@ static float _estimate_arc_time(float length, float linear_travel, float time = mach_get_feed_mode() == INVERSE_TIME_MODE ? mach_get_feed_rate() : length / mach_get_feed_rate(); + + // Apply feed override + time /= mach_get_feed_override(); + // Downgrade the time if there is a rate-limiting axis return max4(time, planar_travel / axes[arc.plane_axis_0].feedrate_max, planar_travel / axes[arc.plane_axis_1].feedrate_max, -- 2.27.0