Use spindle and feed overrides
authorJoseph Coffland <joseph@cauldrondevelopment.com>
Sun, 11 Sep 2016 13:11:03 +0000 (06:11 -0700)
committerJoseph Coffland <joseph@cauldrondevelopment.com>
Sun, 11 Sep 2016 13:11:03 +0000 (06:11 -0700)
src/machine.c
src/plan/arc.c

index 00ab787bf0ac1caa9acebf2b43b4270714d13037..ef71fab459eb67600e9cea9cd7a73b93ca0fb789 100644 (file)
@@ -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]) /
index 92c86b738d583ddba25b73658c3c8f2dcd8f78ac..8d8666b7d4542ebb14d7d7b637396bf89715df5b 100644 (file)
@@ -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,