ENH: first nozzle change to 0.4 and nozzle change to mm

Jira: XXXX

Change-Id: I14defd36442dbd7008e46782b08415b6244224f1
Signed-off-by: maosheng.wei <maosheng.wei@bambulab.com>
This commit is contained in:
maosheng.wei 2023-11-18 12:34:49 +08:00 committed by Lane.Wei
parent f38e4339d5
commit dd4d865f88
1 changed files with 17 additions and 11 deletions

View File

@ -103,6 +103,11 @@ static const std::unordered_map<std::string, std::vector<std::string>> printer_m
"Zero 120mm3", "Switchwire"}}, "Zero 120mm3", "Switchwire"}},
{"Zonestar", {"Z5", "Z6", "Z5x", "Z8", "Z9"}}}; {"Zonestar", {"Z5", "Z6", "Z5x", "Z8", "Z9"}}};
static std::vector<std::string> nozzle_diameter_vec = {"0.4", "0.2", "0.25", "0.3", "0.35", "0.5", "0.6", "0.75", "0.8", "1.0", "1.2"};
static std::unordered_map<std::string, float> nozzle_diameter_map = {{"0.2 mm", 0.2}, {"0.25 mm", 0.25}, {"0.3 mm", 0.3}, {"0.35 mm", 0.35},
{"0.4 mm", 0.4}, {"0.5 mm", 0.5}, {"0.6 mm", 0.6}, {"0.75 mm", 0.75},
{"0.8 mm", 0.8}, {"1.0 mm", 1.0}, {"1.2 mm", 1.2}};
static std::set<int> cannot_input_key = {9, 10, 13, 33, 35, 36, 37, 38, 40, 41, 42, 43, 44, 46, 47, 59, 60, 62, 63, 64, 92, 94, 95, 124, 126}; static std::set<int> cannot_input_key = {9, 10, 13, 33, 35, 36, 37, 38, 40, 41, 42, 43, 44, 46, 47, 59, 60, 62, 63, 64, 92, 94, 95, 124, 126};
static std::set<char> special_key = {'\n', '\t', '\r', '\v', '@', ';'}; static std::set<char> special_key = {'\n', '\t', '\r', '\v', '@', ';'};
@ -168,9 +173,6 @@ static bool delete_filament_preset_by_name(std::string delete_preset_name, std::
return true; return true;
} }
static const std::vector<std::string> nozzle_diameter_vec = {"0.2","0.25", "0.3","0.35", "0.4", "0.5", "0.6","0.75", "0.8", "1.0", "1.2"};
static const std::unordered_map<std::string, float> nozzle_diameter_map = {{"0.2 nozzle", 0.2}, {"0.25 nozzle", 0.25}, {"0.3 nozzle", 0.3}, {"0.35 nozzle", 0.35}, {"0.4 nozzle", 0.4}, {"0.5 nozzle", 0.5}, {"0.6 nozzle", 0.6}, {"0.75 nozzle", 0.75}, {"0.8 nozzle", 0.8}, {"1.0 nozzle", 1.0}, {"1.2 nozzle", 1.2}};
static std::string get_curr_time() static std::string get_curr_time()
{ {
std::chrono::system_clock::time_point now = std::chrono::system_clock::now(); std::chrono::system_clock::time_point now = std::chrono::system_clock::now();
@ -1636,10 +1638,10 @@ wxBoxSizer *CreatePrinterPresetDialog::create_nozzle_diameter_item(wxWindow *par
horizontal_sizer->Add(optionSizer, 0, wxEXPAND | wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(10)); horizontal_sizer->Add(optionSizer, 0, wxEXPAND | wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(10));
wxBoxSizer *comboBoxSizer = new wxBoxSizer(wxVERTICAL); wxBoxSizer *comboBoxSizer = new wxBoxSizer(wxVERTICAL);
m_nozzle_diameter = new ComboBox(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, NAME_OPTION_COMBOBOX_SIZE, 0, nullptr, wxCB_READONLY); m_nozzle_diameter = new ComboBox(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, OPTION_SIZE, 0, nullptr, wxCB_READONLY);
wxArrayString nozzle_diameters; wxArrayString nozzle_diameters;
for (const std::string nozzle : nozzle_diameter_vec) { for (const std::string nozzle : nozzle_diameter_vec) {
nozzle_diameters.Add(nozzle + " nozzle"); nozzle_diameters.Add(nozzle + " mm");
} }
m_nozzle_diameter->Set(nozzle_diameters); m_nozzle_diameter->Set(nozzle_diameters);
m_nozzle_diameter->SetSelection(0); m_nozzle_diameter->SetSelection(0);
@ -2501,6 +2503,10 @@ wxBoxSizer *CreatePrinterPresetDialog::create_page2_btns_item(wxWindow *parent)
std::string printer_model_name; std::string printer_model_name;
std::string printer_nozzle_name; std::string printer_nozzle_name;
std::string nozzle_diameter = into_u8(m_nozzle_diameter->GetStringSelection()); std::string nozzle_diameter = into_u8(m_nozzle_diameter->GetStringSelection());
size_t index_mm = nozzle_diameter.find("mm");
if (std::string::npos != index_mm) {
nozzle_diameter.replace(index_mm, 2, "nozzle");
}
if (curr_selected_printer_type == m_create_type.create_printer) { if (curr_selected_printer_type == m_create_type.create_printer) {
if (m_can_not_find_vendor_combox->GetValue()) { if (m_can_not_find_vendor_combox->GetValue()) {
std::string custom_vendor = into_u8(m_custom_vendor_text_ctrl->GetValue()); std::string custom_vendor = into_u8(m_custom_vendor_text_ctrl->GetValue());
@ -2544,7 +2550,7 @@ wxBoxSizer *CreatePrinterPresetDialog::create_page2_btns_item(wxWindow *parent)
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " don't get printer preset, and the name is: " << selected_printer_preset_name; BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " don't get printer preset, and the name is: " << selected_printer_preset_name;
} }
} }
printer_nozzle_name = nozzle_diameter.substr(0, nozzle_diameter.find("nozzle") - 1); printer_nozzle_name = nozzle_diameter.substr(0, nozzle_diameter.find(" nozzle"));
// Confirm if the printer preset has a duplicate name // Confirm if the printer preset has a duplicate name
if (!rewritten && preset_bundle->printers.find_preset(printer_preset_name)) { if (!rewritten && preset_bundle->printers.find_preset(printer_preset_name)) {
@ -2621,7 +2627,7 @@ wxBoxSizer *CreatePrinterPresetDialog::create_page2_btns_item(wxWindow *parent)
/****************************** clone process preset ********************************/ /****************************** clone process preset ********************************/
failures.clear(); failures.clear();
if (!selected_process_presets.empty()) { if (!selected_process_presets.empty()) {
generate_process_presets_data(selected_process_presets, nozzle_diameter); generate_process_presets_data(selected_process_presets, printer_nozzle_name + " mm");
bool create_preset_result = preset_bundle->prints.create_presets_from_template_for_printer(selected_process_presets, failures, printer_preset_name, bool create_preset_result = preset_bundle->prints.create_presets_from_template_for_printer(selected_process_presets, failures, printer_preset_name,
get_filament_id, rewritten); get_filament_id, rewritten);
if (!create_preset_result) { if (!create_preset_result) {
@ -2700,7 +2706,7 @@ wxBoxSizer *CreatePrinterPresetDialog::create_page2_btns_item(wxWindow *parent)
auto nozzle_diameter = dynamic_cast<ConfigOptionFloats *>(m_printer_preset->config.option("nozzle_diameter", true)); auto nozzle_diameter = dynamic_cast<ConfigOptionFloats *>(m_printer_preset->config.option("nozzle_diameter", true));
if (nozzle_diameter) { if (nozzle_diameter) {
std::unordered_map<std::string, float>::const_iterator iter = nozzle_diameter_map.find(printer_nozzle_name + " nozzle"); std::unordered_map<std::string, float>::const_iterator iter = nozzle_diameter_map.find(printer_nozzle_name + " mm");
if (nozzle_diameter_map.end() != iter) { if (nozzle_diameter_map.end() != iter) {
nozzle_diameter->values = {iter->second}; nozzle_diameter->values = {iter->second};
} }
@ -2754,9 +2760,8 @@ void CreatePrinterPresetDialog::show_page2()
bool CreatePrinterPresetDialog::data_init() bool CreatePrinterPresetDialog::data_init()
{ {
std::string nozzle_type = into_u8(m_nozzle_diameter->GetStringSelection()); std::string nozzle_type = into_u8(m_nozzle_diameter->GetStringSelection());
size_t index_nozzle = nozzle_type.find(" nozzle"); float nozzle = nozzle_diameter_map[nozzle_type];
nozzle_type = nozzle_type.substr(0, index_nozzle); BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " entry and nozzle type is: " << nozzle_type << " and nozzle is: " << nozzle;
float nozzle = std::stof(nozzle_type);
VendorMap vendors; VendorMap vendors;
wxArrayString exist_vendor_choice = get_exist_vendor_choices(vendors); wxArrayString exist_vendor_choice = get_exist_vendor_choices(vendors);
@ -2823,6 +2828,7 @@ wxArrayString CreatePrinterPresetDialog::printer_preset_sort_with_nozzle_diamete
try { try {
float variant_diameter = std::stof(variant.name); float variant_diameter = std::stof(variant.name);
preset_sort.push_back(std::make_pair(variant_diameter, model_name + " @ " + variant.name + " nozzle")); preset_sort.push_back(std::make_pair(variant_diameter, model_name + " @ " + variant.name + " nozzle"));
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << "nozzle: " << variant_diameter << "model: " << preset_sort.back().second;
} }
catch (...) { catch (...) {
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " prase varient fialed and the model_name is: " << model_name; BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " prase varient fialed and the model_name is: " << model_name;