FIX: speed 0 on macOS 13.2 STUDIO-2265

Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: Ia8d92f6a0f7d84c1216d9403793e5fa7671ee8de
This commit is contained in:
qing.zhang 2023-02-24 10:12:26 +08:00 committed by Lane.Wei
parent d61986028d
commit 6a391de290

View file

@ -244,22 +244,22 @@ float new_feedrate_to_reach_time_stretch(
{ {
float new_feedrate = min_feedrate; float new_feedrate = min_feedrate;
for (size_t iter = 0; iter < max_iter; ++ iter) { for (size_t iter = 0; iter < max_iter; ++ iter) {
float nomin = 0; double nomin = 0;
float denom = time_stretch; double denom = time_stretch;
for (auto it = it_begin; it != it_end; ++ it) { for (auto it = it_begin; it != it_end; ++ it) {
assert((*it)->slow_down_min_speed < min_feedrate + EPSILON); assert((*it)->slow_down_min_speed < min_feedrate + EPSILON);
for (size_t i = 0; i < (*it)->n_lines_adjustable; ++i) { for (size_t i = 0; i < (*it)->n_lines_adjustable; ++i) {
const CoolingLine &line = (*it)->lines[i]; const CoolingLine &line = (*it)->lines[i];
if (line.feedrate > min_feedrate) { if (line.feedrate > min_feedrate) {
nomin += line.time * line.feedrate; nomin += (double)line.time * (double)line.feedrate;
denom += line.time; denom += (double)line.time;
} }
} }
} }
assert(denom > 0); assert(denom > 0);
if (denom < 0) if (denom < 0)
return min_feedrate; return min_feedrate;
new_feedrate = nomin / denom; new_feedrate = (float)(nomin / denom);
assert(new_feedrate > min_feedrate - EPSILON); assert(new_feedrate > min_feedrate - EPSILON);
if (new_feedrate < min_feedrate + EPSILON) if (new_feedrate < min_feedrate + EPSILON)
goto finished; goto finished;