|
@@ -1242,22 +1242,15 @@ void Planner::_buffer_line(const float &a, const float &b, const float &c, const
|
1242
|
1242
|
v_entry *= v_factor;
|
1243
|
1243
|
}
|
1244
|
1244
|
// Calculate jerk depending on whether the axis is coasting in the same direction or reversing.
|
1245
|
|
- float jerk =
|
1246
|
|
- (v_exit > v_entry) ?
|
1247
|
|
- ((v_entry > 0.f || v_exit < 0.f) ?
|
1248
|
|
- // coasting
|
1249
|
|
- (v_exit - v_entry) :
|
1250
|
|
- // axis reversal
|
1251
|
|
- max(v_exit, -v_entry)) :
|
1252
|
|
- // v_exit <= v_entry
|
1253
|
|
- ((v_entry < 0.f || v_exit > 0.f) ?
|
1254
|
|
- // coasting
|
1255
|
|
- (v_entry - v_exit) :
|
1256
|
|
- // axis reversal
|
1257
|
|
- max(-v_exit, v_entry));
|
|
1245
|
+ const float jerk = (v_exit > v_entry)
|
|
1246
|
+ ? // coasting axis reversal
|
|
1247
|
+ ( (v_entry > 0.f || v_exit < 0.f) ? (v_exit - v_entry) : max(v_exit, -v_entry) )
|
|
1248
|
+ : // v_exit <= v_entry coasting axis reversal
|
|
1249
|
+ ( (v_entry < 0.f || v_exit > 0.f) ? (v_entry - v_exit) : max(-v_exit, v_entry) );
|
|
1250
|
+
|
1258
|
1251
|
if (jerk > max_jerk[axis]) {
|
1259
|
1252
|
v_factor *= max_jerk[axis] / jerk;
|
1260
|
|
- limited = true;
|
|
1253
|
+ ++limited;
|
1261
|
1254
|
}
|
1262
|
1255
|
}
|
1263
|
1256
|
if (limited) vmax_junction *= v_factor;
|