ENH: remove create filament entry to guide

Jira: 4036

Change-Id: I86aa3423761956120e9bf42dcb8eca76dd44202b
Signed-off-by: maosheng.wei <maosheng.wei@bambulab.com>
This commit is contained in:
maosheng.wei
2023-09-26 11:49:13 +08:00
committed by Lane.Wei
parent ffcfb4f6bd
commit 735ef3dc8a
24 changed files with 3398 additions and 329 deletions

View File

@@ -2143,23 +2143,47 @@ bool PresetCollection::clone_presets_for_printer(std::vector<Preset const *> con
}, force_rewritten);
}
bool PresetCollection::create_presets_from_template_for_printer(std::vector<std::string> const &templates, std::vector<std::string> &failures, std::string const &printer)
bool PresetCollection::create_presets_from_template_for_printer(std::vector<Preset const *> const & templates,
std::vector<std::string> & failures,
std::string const & printer,
std::function<std::string(std::string)> create_filament_id,
bool force_rewritten)
{
return false;
return clone_presets(templates, failures, [printer, create_filament_id](Preset &preset, Preset::Type &type) {
preset.name = preset.name.substr(0, preset.name.find("@")) + " @" + printer;
auto *compatible_printers = dynamic_cast<ConfigOptionStrings *>(preset.config.option("compatible_printers"));
compatible_printers->values = std::vector<std::string>{ printer };
preset.is_visible = true;
if (type == Preset::TYPE_FILAMENT)
preset.filament_id = create_filament_id(preset.name);
}, force_rewritten);
}
bool PresetCollection::clone_presets_for_filament(std::vector<Preset const *> const &presets,
bool PresetCollection::clone_presets_for_filament(Preset const * const &preset,
std::vector<std::string> & failures,
std::string const & filament_name,
std::string const & filament_id,
const std::string & vendor_name,
const std::string & compatible_printers,
bool force_rewritten)
{
return clone_presets(presets, failures, [filament_name, filament_id, vendor_name](Preset &preset, Preset::Type &type) {
preset.name = filament_name + " " + preset.name.substr(preset.name.find_last_of('@'));
if (type == Preset::TYPE_FILAMENT)
preset.config.option<ConfigOptionStrings>("filament_vendor", true)->values[0] = vendor_name;
preset.filament_id = filament_id;
std::vector<Preset const *> const presets = {preset};
return clone_presets(presets, failures, [&filament_name, &filament_id, &vendor_name, &compatible_printers](Preset &preset, Preset::Type &type) {
preset.name = filament_name + " @" + compatible_printers;
if (type == Preset::TYPE_FILAMENT) {
auto filament_vendor = preset.config.option<ConfigOptionStrings>("filament_vendor", true);
if (filament_vendor->values.empty()) {
filament_vendor->values.push_back(vendor_name);
} else {
filament_vendor->values = {vendor_name};
}
auto compatible_printers_option = preset.config.option<ConfigOptionStrings>("compatible_printers", true);
if (compatible_printers_option->values.empty()) { compatible_printers_option->values.push_back(compatible_printers);
} else {
compatible_printers_option->values = {compatible_printers};
}
preset.filament_id = filament_id;
}
},
force_rewritten);
}

View File

@@ -20,6 +20,8 @@
#define PRESET_PRINTER_NAME "machine"
#define PRESET_SLA_PRINT_NAME "sla_print"
#define PRESET_SLA_MATERIALS_NAME "sla_materials"
#define PRESET_PROFILES_DIR "profiles"
#define PRESET_TEMPLATE_DIR "Template"
//BBS: iot preset type strings
#define PRESET_IOT_PRINTER_TYPE "printer"
@@ -57,6 +59,9 @@
#define BBL_JSON_KEY_DEFAULT_MATERIALS "default_materials"
#define BBL_JSON_KEY_MODEL_ID "model_id"
//BBL: json path
namespace Slic3r {
class AppConfig;
@@ -452,8 +457,10 @@ public:
bool clone_presets(std::vector<Preset const *> const &presets, std::vector<std::string> &failures, std::function<void(Preset &, Preset::Type &)> modifier, bool force_rewritten = false);
bool clone_presets_for_printer(std::vector<Preset const *> const &presets, std::vector<std::string> &failures, std::string const &printer, bool force_rewritten = false);
bool create_presets_from_template_for_printer(std::vector<std::string> const &templates, std::vector<std::string> &failures, std::string const &printer);
bool clone_presets_for_filament(std::vector<Preset const *> const &presets, std::vector<std::string> &failures, std::string const &filament_name, std::string const &filament_id, const std::string& vendor, bool force_rewritten = false);
bool create_presets_from_template_for_printer(
std::vector<Preset const *> const &templates, std::vector<std::string> &failures, std::string const &printer, std::function <std::string(std::string)> create_filament_id, bool force_rewritten = false);
bool clone_presets_for_filament(Preset const * const &preset, std::vector<std::string> &failures, std::string const &filament_name, std::string const &filament_id, const std::string& vendor,
const std::string& compatible_printers, bool force_rewritten = false);
std::map<std::string, std::vector<Preset const *>> get_filament_presets() const;

View File

@@ -3270,7 +3270,7 @@ std::pair<PresetsConfigSubstitutions, size_t> PresetBundle::load_vendor_configs_
}
config = *default_config;
config.apply(config_src);
if (instantiation == "false") {
if (instantiation == "false" && "Template" != vendor_name) {
config_maps.emplace(preset_name, std::move(config));
if ((presets_collection->type() == Preset::TYPE_FILAMENT) && (!filament_id.empty()))
filament_id_maps.emplace(preset_name, filament_id);
@@ -3348,7 +3348,7 @@ std::pair<PresetsConfigSubstitutions, size_t> PresetBundle::load_vendor_configs_
loaded.setting_id = setting_id;
loaded.filament_id = filament_id;
if (presets_collection->type() == Preset::TYPE_FILAMENT) {
if (filament_id.empty()) {
if (filament_id.empty() && "Template" != vendor_name) {
BOOST_LOG_TRIVIAL(error) << __FUNCTION__<< ": can not find filament_id for " << preset_name;
//throw ConfigurationError(format("can not find inherits %1% for %2%", inherits, preset_name));
reason = "Can not find filament_id for " + preset_name;