ENH: CLI: output stl files into a subdirectory

Change-Id: I3d1a3685713a498d7d66e9d5cbabf90aaa3ffe43
(cherry picked from commit bcb352f48995f7c3488bdf8d5636499fcd2b714c)
This commit is contained in:
lane.wei 2023-06-10 15:46:29 +08:00 committed by Lane.Wei
parent d1c6cc03d5
commit 5ddb47a8cd

View file

@ -2980,12 +2980,24 @@ std::string CLI::output_filepath(const Model &model, IO::ExportFormat format) co
std::string CLI::output_filepath(const ModelObject &object, unsigned int index, IO::ExportFormat format) const std::string CLI::output_filepath(const ModelObject &object, unsigned int index, IO::ExportFormat format) const
{ {
std::string ext, file_name, output_path; std::string ext, subdir, file_name, output_path;
switch (format) { switch (format) {
case IO::AMF: ext = ".zip.amf"; break; case IO::AMF:
case IO::OBJ: ext = ".obj"; break; ext = ".zip.amf";
case IO::STL: ext = ".stl"; break; subdir = "amf";
case IO::TMF: ext = ".3mf"; break; break;
case IO::OBJ:
ext = ".obj";
subdir = "obj";
break;
case IO::STL:
ext = ".stl";
subdir = "stl";
break;
case IO::TMF:
ext = ".3mf";
subdir = "3mf";
break;
default: assert(false); break; default: assert(false); break;
}; };
// use --outputdir when available // use --outputdir when available
@ -2998,11 +3010,14 @@ std::string CLI::output_filepath(const ModelObject &object, unsigned int index,
BOOST_LOG_TRIVIAL(trace) << __FUNCTION__ << ": file_name="<<file_name<< ", pos = "<<pos<<", ext_pos="<<ext_pos; BOOST_LOG_TRIVIAL(trace) << __FUNCTION__ << ": file_name="<<file_name<< ", pos = "<<pos<<", ext_pos="<<ext_pos;
std::string cmdline_param = m_config.opt_string("outputdir"); std::string cmdline_param = m_config.opt_string("outputdir");
if (! cmdline_param.empty()) { if (! cmdline_param.empty()) {
output_path = cmdline_param + "/"+file_name; subdir = cmdline_param + "/" + subdir;
} }
else
output_path = file_name;
output_path = subdir + "/"+file_name;
boost::filesystem::path subdir_path(subdir);
if (!boost::filesystem::exists(subdir_path))
boost::filesystem::create_directory(subdir_path);
return output_path; return output_path;
} }