From 2d4655e780e85e84445bb0b1987445e9e8d66b95 Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Mon, 19 Aug 2024 17:04:48 +0800 Subject: [PATCH] FIX: CLI: fix an exception when parsing scale params github: https://github.com/bambulab/BambuStudio/issues/4628 Change-Id: I29f1f8e605c12a92b140e53b6b894a0a676f3588 --- src/BambuStudio.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/BambuStudio.cpp b/src/BambuStudio.cpp index 7dae293ad..5d33b8ed9 100644 --- a/src/BambuStudio.cpp +++ b/src/BambuStudio.cpp @@ -3785,10 +3785,16 @@ int CLI::run(int argc, char **argv) // this affects volumes: o->rotate(Geometry::deg2rad(m_config.opt_float(opt_key)), Y); } 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 &o : model.objects) // this affects volumes: - o->scale(m_config.get_abs_value(opt_key, 1)); + o->scale(ratio); } else if (opt_key == "scale_to_fit") { const Vec3d &opt = m_config.opt(opt_key)->value; if (opt.x() <= 0 || opt.y() <= 0 || opt.z() <= 0) {