|
|
@ -2230,7 +2230,7 @@ bool Planner::_populate_block(block_t * const block, bool split_move,
|
|
|
|
|
|
|
|
|
|
|
|
// TODO: Technically, the acceleration used in calculation needs to be limited by the minimum of the
|
|
|
|
// TODO: Technically, the acceleration used in calculation needs to be limited by the minimum of the
|
|
|
|
// two junctions. However, this shouldn't be a significant problem except in extreme circumstances.
|
|
|
|
// two junctions. However, this shouldn't be a significant problem except in extreme circumstances.
|
|
|
|
vmax_junction_sqr = (JUNCTION_ACCELERATION_FACTOR * JUNCTION_DEVIATION_FACTOR * sin_theta_d2) / (1.0 - sin_theta_d2);
|
|
|
|
vmax_junction_sqr = (JUNCTION_ACCELERATION * JUNCTION_DEVIATION_MM * sin_theta_d2) / (1.0 - sin_theta_d2);
|
|
|
|
if (block->millimeters < 1.0) {
|
|
|
|
if (block->millimeters < 1.0) {
|
|
|
|
|
|
|
|
|
|
|
|
// Fast acos approximation, minus the error bar to be safe
|
|
|
|
// Fast acos approximation, minus the error bar to be safe
|
|
|
@ -2238,7 +2238,7 @@ bool Planner::_populate_block(block_t * const block, bool split_move,
|
|
|
|
|
|
|
|
|
|
|
|
// If angle is greater than 135 degrees (octagon), find speed for approximate arc
|
|
|
|
// If angle is greater than 135 degrees (octagon), find speed for approximate arc
|
|
|
|
if (junction_theta > RADIANS(135)) {
|
|
|
|
if (junction_theta > RADIANS(135)) {
|
|
|
|
const float limit_sqr = block->millimeters / (RADIANS(180) - junction_theta) * JUNCTION_ACCELERATION_FACTOR;
|
|
|
|
const float limit_sqr = block->millimeters / (RADIANS(180) - junction_theta) * JUNCTION_ACCELERATION;
|
|
|
|
NOMORE(vmax_junction_sqr, limit_sqr);
|
|
|
|
NOMORE(vmax_junction_sqr, limit_sqr);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|