FIX: CLI: fix an exception when parsing scale params

github: https://github.com/bambulab/BambuStudio/issues/4628
Change-Id: I29f1f8e605c12a92b140e53b6b894a0a676f3588
This commit is contained in:
lane.wei 2024-08-19 17:04:48 +08:00 committed by Lane.Wei
parent 987f98fa95
commit 2d4655e780
1 changed files with 7 additions and 1 deletions

View File

@ -3785,10 +3785,16 @@ int CLI::run(int argc, char **argv)
// this affects volumes: // this affects volumes:
o->rotate(Geometry::deg2rad(m_config.opt_float(opt_key)), Y); o->rotate(Geometry::deg2rad(m_config.opt_float(opt_key)), Y);
} else if (opt_key == "scale") { } else if (opt_key == "scale") {
float ratio = m_config.opt_float(opt_key);
if (ratio <= 0.f) {
BOOST_LOG_TRIVIAL(error) << boost::format("Invalid params:invalid scale ratio %1%")%ratio;
record_exit_reson(outfile_dir, CLI_INVALID_PARAMS, 0, cli_errors[CLI_INVALID_PARAMS], sliced_info);
flush_and_exit(CLI_INVALID_PARAMS);
}
for (auto &model : m_models) for (auto &model : m_models)
for (auto &o : model.objects) for (auto &o : model.objects)
// this affects volumes: // this affects volumes:
o->scale(m_config.get_abs_value(opt_key, 1)); o->scale(ratio);
} else if (opt_key == "scale_to_fit") { } else if (opt_key == "scale_to_fit") {
const Vec3d &opt = m_config.opt<ConfigOptionPoint3>(opt_key)->value; const Vec3d &opt = m_config.opt<ConfigOptionPoint3>(opt_key)->value;
if (opt.x() <= 0 || opt.y() <= 0 || opt.z() <= 0) { if (opt.x() <= 0 || opt.y() <= 0 || opt.z() <= 0) {