diff --git a/src/slic3r/GUI/Jobs/PrintJob.cpp b/src/slic3r/GUI/Jobs/PrintJob.cpp index e347e5ad6..d3b642bd7 100644 --- a/src/slic3r/GUI/Jobs/PrintJob.cpp +++ b/src/slic3r/GUI/Jobs/PrintJob.cpp @@ -280,7 +280,16 @@ void PrintJob::process() auto model_name = model_info->metadata_items.find(BBL_DESIGNER_MODEL_TITLE_TAG); if (model_name != model_info->metadata_items.end()) { try { - params.project_name = model_name->second; + + std::string mall_model_name = model_name->second; + std::replace(mall_model_name.begin(), mall_model_name.end(), ' ', '_'); + const char* unusable_symbols = "<>[]:/\\|?*\" "; + for (const char* symbol = unusable_symbols; *symbol != '\0'; ++symbol) { + std::replace(mall_model_name.begin(), mall_model_name.end(), *symbol, '_'); + } + + std::regex pattern("_+"); + params.project_name = std::regex_replace(mall_model_name, pattern, "_"); } catch (...) {} }