修复配置功能下拉框不正常的问题。喷头切换耗材判断(暂定)
This commit is contained in:
parent
e1f2dc9b4e
commit
919f5906e5
|
@ -17,7 +17,7 @@
|
|||
#include "FillFloatingConcentric.hpp"
|
||||
|
||||
#define NARROW_INFILL_AREA_THRESHOLD 3
|
||||
//#define SLIC3R_DEBUG_SLICE_PROCESSING
|
||||
#define SLIC3R_DEBUG_SLICE_PROCESSING
|
||||
|
||||
|
||||
namespace Slic3r {
|
||||
|
@ -581,6 +581,15 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive:
|
|||
export_group_fills_to_svg(filename.c_str(), surface_fills);
|
||||
}
|
||||
#endif /* SLIC3R_DEBUG_SLICE_PROCESSING */
|
||||
/* if (surface_fills[0].params.pattern == ipFiberSpiral) {
|
||||
int fill_size = surface_fills.size();
|
||||
for (int i = 1; i < fill_size; i++) {
|
||||
SurfaceFill& surface_fill = surface_fills[i];
|
||||
for (ExPolygon& expoly : surface_fill.expolygons) {
|
||||
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
for (SurfaceFill& surface_fill : surface_fills) {
|
||||
// Create the filler object.
|
||||
|
|
|
@ -159,7 +159,7 @@ void PresetBundle::reset(bool delete_files)
|
|||
this->filaments .reset(delete_files);
|
||||
this->sla_materials.reset(delete_files);
|
||||
this->printers .reset(delete_files);
|
||||
this->configs.reset(delete_files);
|
||||
this->configs .reset(delete_files);
|
||||
// BBS: filament_presets is load from project config, not handled here
|
||||
//this->filament_presets.clear();
|
||||
if (this->filament_presets.empty())
|
||||
|
@ -399,8 +399,7 @@ PresetsConfigSubstitutions PresetBundle::load_project_embedded_presets(std::vect
|
|||
}
|
||||
try {
|
||||
this->configs.load_project_embedded_presets(project_presets, PRESET_CONFIG_NAME, substitutions, substitution_rule);
|
||||
}
|
||||
catch (const std::runtime_error& err) {
|
||||
} catch (const std::runtime_error& err) {
|
||||
errors_cummulative += err.what();
|
||||
}
|
||||
|
||||
|
@ -618,8 +617,7 @@ PresetsConfigSubstitutions PresetBundle::load_user_presets(std::string user, For
|
|||
std::string config_selected_preset_name = configs.get_selected_preset().name;
|
||||
this->configs.load_presets(dir_user_presets, PRESET_CONFIG_NAME, substitutions, substitution_rule);
|
||||
configs.select_preset_by_name(config_selected_preset_name, false);
|
||||
}
|
||||
catch (const std::runtime_error& err) {
|
||||
} catch (const std::runtime_error& err) {
|
||||
errors_cummulative += err.what();
|
||||
}
|
||||
if (!errors_cummulative.empty()) throw Slic3r::RuntimeError(errors_cummulative);
|
||||
|
@ -1437,18 +1435,18 @@ std::vector<std::string> PresetBundle::merge_presets(PresetBundle &&other)
|
|||
std::vector<std::string> duplicate_filaments = this->filaments .merge_presets(std::move(other.filaments), this->vendors);
|
||||
std::vector<std::string> duplicate_sla_materials = this->sla_materials.merge_presets(std::move(other.sla_materials), this->vendors);
|
||||
std::vector<std::string> duplicate_printers = this->printers .merge_presets(std::move(other.printers), this->vendors);
|
||||
std::vector<std::string> duplicate_configs = this->configs .merge_presets(std::move(other.configs), this->vendors);
|
||||
//std::vector<std::string> duplicate_configs = this->configs .merge_presets(std::move(other.configs), this->vendors);
|
||||
append(this->obsolete_presets.prints, std::move(other.obsolete_presets.prints));
|
||||
append(this->obsolete_presets.sla_prints, std::move(other.obsolete_presets.sla_prints));
|
||||
append(this->obsolete_presets.filaments, std::move(other.obsolete_presets.filaments));
|
||||
append(this->obsolete_presets.sla_materials, std::move(other.obsolete_presets.sla_materials));
|
||||
append(this->obsolete_presets.printers, std::move(other.obsolete_presets.printers));
|
||||
append(this->obsolete_presets.configs, std::move(other.obsolete_presets.configs));
|
||||
//append(this->obsolete_presets.configs, std::move(other.obsolete_presets.configs));
|
||||
append(duplicate_prints, std::move(duplicate_sla_prints));
|
||||
append(duplicate_prints, std::move(duplicate_filaments));
|
||||
append(duplicate_prints, std::move(duplicate_sla_materials));
|
||||
append(duplicate_prints, std::move(duplicate_printers));
|
||||
append(duplicate_configs, std::move(duplicate_configs));
|
||||
//append(duplicate_configs, std::move(duplicate_configs));
|
||||
return duplicate_prints;
|
||||
}
|
||||
|
||||
|
@ -1644,38 +1642,48 @@ void PresetBundle::load_installed_sla_materials(AppConfig &config)
|
|||
|
||||
// Load selections (current print, current filaments, current printer) from config.ini
|
||||
// This is done on application start up or after updates are applied.
|
||||
//从config.ini加载选择(当前打印、当前灯丝、当前打印机)
|
||||
//这是在应用程序启动时或应用更新后完成的。
|
||||
void PresetBundle::load_selections(AppConfig &config, const PresetPreferences& preferred_selection/* = PresetPreferences()*/)
|
||||
{
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": enter, preferred printer_model_id %1%")%preferred_selection.printer_model_id;
|
||||
// Update visibility of presets based on application vendor / model / variant configuration.
|
||||
//根据应用程序供应商/型号/变体配置更新预设的可见性。
|
||||
this->load_installed_printers(config);
|
||||
|
||||
// Update visibility of filament and sla material presets
|
||||
//更新灯丝和sla材料预设的可见性
|
||||
this->load_installed_filaments(config);
|
||||
this->load_installed_sla_materials(config);
|
||||
this->load_installed_configs(config);
|
||||
|
||||
// Parse the initial print / filament / printer profile names.
|
||||
//解析初始打印/灯丝/打印机配置文件名称。
|
||||
std::string initial_print_profile_name = remove_ini_suffix(config.get("presets", PRESET_PRINT_NAME));
|
||||
std::string initial_sla_print_profile_name = remove_ini_suffix(config.get("presets", PRESET_SLA_PRINT_NAME));
|
||||
std::string initial_filament_profile_name = remove_ini_suffix(config.get("presets", PRESET_FILAMENT_NAME));
|
||||
std::string initial_sla_material_profile_name = remove_ini_suffix(config.get("presets", PRESET_SLA_MATERIALS_NAME));
|
||||
std::string initial_printer_profile_name = remove_ini_suffix(config.get("presets", PRESET_PRINTER_NAME));
|
||||
std::string initial_config_profile_name = remove_ini_suffix(config.get("presets", PRESET_CONFIG_NAME));
|
||||
std::string initial_config_profile_name = remove_ini_suffix(config.get("presets", PRESET_CONFIG_NAME));
|
||||
|
||||
// Activate print / filament / printer profiles from either the config,
|
||||
// or from the preferred_model_id suggestion passed in by ConfigWizard.
|
||||
// If the printer profile enumerated by the config are not visible, select an alternate preset.
|
||||
// Do not select alternate profiles for the print / filament profiles as those presets
|
||||
// will be selected by the following call of this->update_compatible(PresetSelectCompatibleType::Always).
|
||||
//从配置或ConfigWizard传递的首选_model_id建议中激活打印/灯丝/打印机配置文件。
|
||||
//如果配置枚举的打印机配置文件不可见,请选择一个备用预设。
|
||||
//不要为打印/灯丝配置文件选择替代配置文件,因为这些预设文件将通过以下调用来选择->update_compatible(PresetSelectCompatibleType::Always)。
|
||||
|
||||
const Preset *initial_printer = printers.find_preset(initial_printer_profile_name);
|
||||
// If executed due to a Config Wizard update, preferred_printer contains the first newly installed printer, otherwise nullptr.
|
||||
//如果由于配置向导更新而执行,则preferred_pinter包含第一个新安装的打印机,否则为nullptr。
|
||||
const Preset *preferred_printer = printers.find_system_preset_by_model_and_variant(preferred_selection.printer_model_id, preferred_selection.printer_variant);
|
||||
printers.select_preset_by_name(preferred_printer ? preferred_printer->name : initial_printer_profile_name, true);
|
||||
CNumericLocalesSetter locales_setter;
|
||||
|
||||
//BBS: set default print/filament profiles to BBL's default setting
|
||||
//BBS:将默认打印/灯丝配置文件设置为BBL的默认设置
|
||||
if (preferred_printer)
|
||||
{
|
||||
const std::string& prefered_print_profile = preferred_printer->config.opt_string("default_print_profile");
|
||||
|
@ -1688,6 +1696,7 @@ void PresetBundle::load_selections(AppConfig &config, const PresetPreferences& p
|
|||
}
|
||||
|
||||
// Selects the profile, leaves it to -1 if the initial profile name is empty or if it was not found.
|
||||
//选择配置文件,如果初始配置文件名称为空或找不到,则将其保留为-1。
|
||||
prints.select_preset_by_name_strict(initial_print_profile_name);
|
||||
filaments.select_preset_by_name_strict(initial_filament_profile_name);
|
||||
sla_prints.select_preset_by_name_strict(initial_sla_print_profile_name);
|
||||
|
@ -1698,6 +1707,9 @@ void PresetBundle::load_selections(AppConfig &config, const PresetPreferences& p
|
|||
// Load it even if the current printer technology is SLA.
|
||||
// The possibly excessive filament names will be later removed with this->update_multi_material_filament_presets()
|
||||
// once the FFF technology gets selected.
|
||||
//加载为多材料打印机选择的其他灯丝轮廓的名称。
|
||||
//即使当前的打印机技术是SLA,也要加载它。
|
||||
//一旦选择了FFF技术,稍后将使用此->update_multi_material_filament_presets()删除可能过多的灯丝名称。
|
||||
this->filament_presets = { filaments.get_selected_preset_name() };
|
||||
for (unsigned int i = 1; i < 1000; ++ i) {
|
||||
char name[64];
|
||||
|
@ -1743,12 +1755,16 @@ void PresetBundle::load_selections(AppConfig &config, const PresetPreferences& p
|
|||
// Always try to select a compatible print and filament preset to the current printer preset,
|
||||
// as the application may have been closed with an active "external" preset, which does not
|
||||
// exist.
|
||||
//根据预设与活动打印机的兼容性更新预设的可见性。
|
||||
//始终尝试选择与当前打印机预设兼容的打印和灯丝预设,因为应用程序可能已被不存在的活动“外部”预设关闭。
|
||||
this->update_compatible(PresetSelectCompatibleType::Always);
|
||||
this->update_multi_material_filament_presets();
|
||||
|
||||
if (initial_printer != nullptr && (preferred_printer == nullptr || initial_printer == preferred_printer)) {
|
||||
// Don't run the following code, as we want to activate default filament / SLA material profiles when installing and selecting a new printer.
|
||||
// Only run this code if just a filament / SLA material was installed by Config Wizard for an active Printer.
|
||||
//不要运行以下代码,因为我们想在安装和选择新打印机时激活默认的长丝/SLA材料配置文件。
|
||||
//仅当配置向导为活动打印机安装了灯丝/SLA材料时,才运行此代码。
|
||||
auto printer_technology = printers.get_selected_preset().printer_technology();
|
||||
if (printer_technology == ptFFF && ! preferred_selection.filament.empty()) {
|
||||
std::string preferred_preset_name = get_preset_name_by_alias(Preset::Type::TYPE_FILAMENT, preferred_selection.filament);
|
||||
|
@ -1792,9 +1808,11 @@ void PresetBundle::load_selections(AppConfig &config, const PresetPreferences& p
|
|||
}
|
||||
|
||||
// Parse the initial physical printer name.
|
||||
//解析初始物理打印机名称。
|
||||
std::string initial_physical_printer_name = remove_ini_suffix(config.get("presets", "physical_printer"));
|
||||
|
||||
// Activate physical printer from the config
|
||||
//从配置中激活物理打印机
|
||||
if (!initial_physical_printer_name.empty())
|
||||
physical_printers.select_printer(initial_physical_printer_name);
|
||||
|
||||
|
@ -1830,6 +1848,7 @@ void PresetBundle::export_selections(AppConfig &config)
|
|||
config.set("presets", "flush_volumes_vector", flush_volumes_vector);
|
||||
|
||||
config.set("presets", PRESET_PRINTER_NAME, printers.get_selected_preset_name());
|
||||
config.set("presets", PRESET_CONFIG_NAME, configs.get_selected_preset_name());
|
||||
|
||||
std::string flush_multiplier_str = boost::algorithm::join(project_config.option<ConfigOptionFloats>("flush_multiplier")->values |
|
||||
boost::adaptors::transformed(static_cast<std::string (*)(double)>(std::to_string)),
|
||||
|
|
|
@ -41,7 +41,7 @@ static const std::vector<std::string> filament_vendors = {"Polymaker", "OVERTURE
|
|||
"Anycubic", "Basf", "ELEGOO", "INLAND", "FLASHFORGE", "FusRock", "AMOLEN", "MIKA3D", "3DXTECH",
|
||||
"Duramic", "Priline", "Eryone", "3Dgunius", "Novamaker", "Justmaker", "Giantarm", "iProspect", "LDO"};
|
||||
|
||||
static const std::vector<std::string> filament_types = {"PLA", "PLA+", "PLA Tough", "PETG", "ABS", "ASA", "FLEX", "HIPS", "PA", "PACF",
|
||||
static const std::vector<std::string> filament_types = {"CFC","PLA", "PLA+", "PLA Tough", "PETG", "ABS", "ASA", "FLEX", "HIPS", "PA", "PACF",
|
||||
"NYLON", "PVA", "PC", "PCABS", "PCTG", "PCCF", "PP", "PEI", "PET", "PETG",
|
||||
"PETGCF", "PTBA", "PTBA90A", "PEEK", "TPU93A", "TPU75D", "TPU","TPU-AMS", "TPU92A", "TPU98A", "Misc",
|
||||
"TPE", "GLAZE", "Nylon", "CPE", "METAL", "ABST", "Carbon Fiber"};
|
||||
|
@ -1344,6 +1344,7 @@ void CreateFilamentPresetDialog::get_all_filament_presets()
|
|||
m_all_presets_map[filament_preset_name] = filament_preset;
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " loaded preset name is: " << filament_preset->name;
|
||||
}
|
||||
m_system_filament_types_set.insert("CFC");
|
||||
}
|
||||
|
||||
void CreateFilamentPresetDialog::get_all_visible_printer_name()
|
||||
|
|
|
@ -83,6 +83,10 @@ void FilamentMapManualPanel::OnSwitchFilament(wxCommandEvent &)
|
|||
auto right_blocks = m_right_panel->get_filament_blocks();
|
||||
|
||||
for (auto &block : left_blocks) {
|
||||
std::string type = block->GetType();
|
||||
/*if (type.find("CFC") != std::string::npos) {
|
||||
show_error(this, _L("test1212121212121212121212"));
|
||||
}*/
|
||||
m_right_panel->AddColorBlock(block->GetColor(), block->GetType(), block->GetFilamentId(), false);
|
||||
m_left_panel->RemoveColorBlock(block, false);
|
||||
}
|
||||
|
|
|
@ -13699,16 +13699,20 @@ void Plater::export_gcode(bool prefer_removable)
|
|||
}
|
||||
//std::this_thread::sleep_for(std::chrono::seconds(5));
|
||||
//output_path = "E:\\Downloads\\Download\\123.gcode";
|
||||
/* std::string temp_file = output_path.string();
|
||||
std::string temp_file = output_path.string();
|
||||
size_t pos = temp_file.find(".gcode");
|
||||
if (pos != std::string::npos) {
|
||||
temp_file.replace(pos, 5, "-process");
|
||||
}
|
||||
temp_file = temp_file + ".gcode";*/
|
||||
|
||||
temp_file = temp_file + ".gcode";
|
||||
wxString abc = wxString::FromUTF8(temp_file);
|
||||
std::string copy_file = output_path.parent_path().string() + "\\copyFile.gcode";
|
||||
std::string temp_file = output_path.parent_path().string() + "\\tempFile.gcode";
|
||||
|
||||
//std::string temp_file = output_path.parent_path().string() + "\\tempFile.gcode";
|
||||
temp_file = abc.c_str();
|
||||
std::this_thread::sleep_for(std::chrono::seconds(3));
|
||||
fs::copy(output_path, copy_file);
|
||||
//std::this_thread::sleep_for(std::chrono::seconds(3));
|
||||
std::ifstream inFile(copy_file);
|
||||
std::ofstream tempFile(temp_file);
|
||||
double total_length = 50 * 1000;
|
||||
|
@ -13839,7 +13843,7 @@ void Plater::export_gcode(bool prefer_removable)
|
|||
//fs::remove(output_path);
|
||||
//std::rename("temp.txt", "original.txt");
|
||||
//std::this_thread::sleep_for(std::chrono::seconds(4));
|
||||
fs::rename(temp_file, output_path);
|
||||
//fs::rename(temp_file, output_path);
|
||||
}
|
||||
|
||||
Point Plater::interpolate(const Point& p1, const Point& p2, double t) {
|
||||
|
|
|
@ -1217,12 +1217,36 @@ void PlaterPresetComboBox::update()
|
|||
tooltip = get_tooltip(preset);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//BBS: move system to the end
|
||||
//if (i + 1 == m_collection->num_default_presets())
|
||||
// set_label_marker(Append(separator(L("System presets")), wxNullBitmap));
|
||||
}
|
||||
//if (m_type == Preset::TYPE_PRINTER)
|
||||
// add_connected_printers("", true);
|
||||
wxString lian_xu = _L("Lian xu");
|
||||
bool m_fold = false;
|
||||
if (m_type == Preset::TYPE_CONFIG) {
|
||||
for (auto& f : m_preset_bundle->filament_presets) {
|
||||
wxString abc = wxString::FromUTF8(f);
|
||||
if (m_fold = abc.Contains(lian_xu)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (m_fold) {
|
||||
temp_presets.clear();
|
||||
for (const auto& pair : nonsys_presets) {
|
||||
wxString key = pair.first;
|
||||
if (key.Contains(lian_xu)) {
|
||||
temp_presets.emplace(pair);
|
||||
}
|
||||
}
|
||||
nonsys_presets.clear();
|
||||
//nonsys_presets.emplace(temp_presets);
|
||||
nonsys_presets.insert(temp_presets.begin(), temp_presets.end());
|
||||
}
|
||||
}
|
||||
if (m_type == Preset::TYPE_PRINTER)
|
||||
add_connected_printers("", true);
|
||||
bool selected_in_ams = false;
|
||||
if (m_type == Preset::TYPE_FILAMENT) {
|
||||
set_replace_text("Bambu", "BambuStudioBlack");
|
||||
|
@ -1280,42 +1304,55 @@ void PlaterPresetComboBox::update()
|
|||
}
|
||||
}
|
||||
};
|
||||
//if (m_type == Preset::TYPE_CONFIG) {
|
||||
// wxString lian_xu = _L("Lian xu");
|
||||
// bool m_fold = false;
|
||||
// for (auto& f : m_preset_bundle->filament_presets) {
|
||||
// wxString abc = wxString::FromUTF8(f);
|
||||
// if (m_fold = abc.Contains(lian_xu)) {
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// /* wxString lian_xu = _L("Lian xu");
|
||||
// bool m_fold = false;
|
||||
// auto full_config = wxGetApp().preset_bundle->full_config();
|
||||
// std::vector<std::string> filament_types = full_config.option<ConfigOptionStrings>("filament_type")->values;
|
||||
// for (std::string type : filament_types) {
|
||||
// if ( type.find("CFC") != std::string::npos) {
|
||||
// m_fold = true;
|
||||
// break;
|
||||
// }
|
||||
// }*/
|
||||
// if (m_fold) {
|
||||
// /* for (std::map<wxString, wxBitmap*>::iterator it = nonsys_presets.begin(); it != nonsys_presets.end(); ++it) {
|
||||
// wxString key = it->first;
|
||||
// temp_presets.insert
|
||||
// }*/
|
||||
// temp_presets.clear();
|
||||
// for (const auto& pair : nonsys_presets) {
|
||||
// wxString key = pair.first;
|
||||
// if (key.Contains(lian_xu)) {
|
||||
// temp_presets.emplace(pair);
|
||||
// }
|
||||
// }
|
||||
// for (std::map<wxString, wxBitmap*>::iterator it = temp_presets.begin(); it != temp_presets.end(); ++it) {
|
||||
// SetItemTooltip(Append(it->first, *it->second), preset_descriptions[it->first]);
|
||||
// validate_selection(it->first == selected_user_preset);
|
||||
// }
|
||||
// //add_presets(temp_presets, selected_user_preset, "");
|
||||
// }
|
||||
// else {
|
||||
// for (std::map<wxString, wxBitmap*>::iterator it = nonsys_presets.begin(); it != nonsys_presets.end(); ++it) {
|
||||
// SetItemTooltip(Append(it->first, *it->second), preset_descriptions[it->first]);
|
||||
// validate_selection(it->first == selected_user_preset);
|
||||
// }
|
||||
// //add_presets(nonsys_presets, selected_user_preset, L("User presets"));
|
||||
// //add_presets(nonsys_presets, selected_user_preset, "");
|
||||
// }
|
||||
if (m_type == Preset::TYPE_CONFIG) {
|
||||
wxString lian_xu = _L("Lian xu");
|
||||
bool m_fold = false;
|
||||
//m_preset_bundle->filament_presets
|
||||
for (auto& f : m_preset_bundle->filament_presets) {
|
||||
wxString abc = wxString::FromUTF8(f);
|
||||
if (m_fold = abc.Contains(lian_xu)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (m_fold) {
|
||||
/* for (std::map<wxString, wxBitmap*>::iterator it = nonsys_presets.begin(); it != nonsys_presets.end(); ++it) {
|
||||
wxString key = it->first;
|
||||
temp_presets.insert
|
||||
}*/
|
||||
temp_presets.clear();
|
||||
for (const auto& pair : nonsys_presets) {
|
||||
wxString key = pair.first;
|
||||
if (key.Contains(lian_xu)) {
|
||||
temp_presets.emplace(pair);
|
||||
}
|
||||
}
|
||||
for (std::map<wxString, wxBitmap*>::iterator it = temp_presets.begin(); it != temp_presets.end(); ++it) {
|
||||
SetItemTooltip(Append(it->first, *it->second), preset_descriptions[it->first]);
|
||||
validate_selection(it->first == selected_user_preset);
|
||||
}
|
||||
//add_presets(temp_presets, selected_user_preset, "");
|
||||
}
|
||||
else {
|
||||
for (std::map<wxString, wxBitmap*>::iterator it = nonsys_presets.begin(); it != nonsys_presets.end(); ++it) {
|
||||
SetItemTooltip(Append(it->first, *it->second), preset_descriptions[it->first]);
|
||||
validate_selection(it->first == selected_user_preset);
|
||||
}
|
||||
//add_presets(nonsys_presets, selected_user_preset, L("User presets"));
|
||||
//add_presets(nonsys_presets, selected_user_preset, "");
|
||||
for (std::map<wxString, wxBitmap*>::iterator it = nonsys_presets.begin(); it != nonsys_presets.end(); ++it) {
|
||||
SetItemTooltip(Append(it->first, *it->second), preset_descriptions[it->first]);
|
||||
validate_selection(it->first == selected_user_preset);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -1507,6 +1544,8 @@ void TabPresetComboBox::update()
|
|||
if (preset.is_system)
|
||||
preset_descriptions.emplace(name, _L(preset.description));
|
||||
|
||||
|
||||
|
||||
if (preset.is_default || preset.is_system) {
|
||||
//BBS: move system to the end
|
||||
system_presets.emplace(name, std::pair<wxBitmap *, bool>(bmp, is_enabled));
|
||||
|
@ -1536,15 +1575,9 @@ void TabPresetComboBox::update()
|
|||
//if (i + 1 == m_collection->num_default_presets())
|
||||
// set_label_marker(Append(separator(L("System presets")), wxNullBitmap));
|
||||
}
|
||||
|
||||
if (m_type == Preset::TYPE_FILAMENT)
|
||||
add_ams_filaments(into_u8(selected));
|
||||
|
||||
//BBS: add project embedded preset logic
|
||||
wxString lian_xu = _L("Lian xu");
|
||||
bool m_fold = false;
|
||||
if (m_type == Preset::TYPE_CONFIG) {
|
||||
wxString lian_xu = _L("Lian xu");
|
||||
bool m_fold = false;
|
||||
//m_preset_bundle->filament_presets
|
||||
for (auto& f : m_preset_bundle->filament_presets) {
|
||||
wxString abc = wxString::FromUTF8(f);
|
||||
if (m_fold = abc.Contains(lian_xu)) {
|
||||
|
@ -1552,10 +1585,6 @@ void TabPresetComboBox::update()
|
|||
}
|
||||
}
|
||||
if (m_fold) {
|
||||
/* for (std::map<wxString, wxBitmap*>::iterator it = nonsys_presets.begin(); it != nonsys_presets.end(); ++it) {
|
||||
wxString key = it->first;
|
||||
temp_presets.insert
|
||||
}*/
|
||||
temp_presets.clear();
|
||||
for (const auto& pair : nonsys_presets) {
|
||||
wxString key = pair.first;
|
||||
|
@ -1563,24 +1592,74 @@ void TabPresetComboBox::update()
|
|||
temp_presets.emplace(pair);
|
||||
}
|
||||
}
|
||||
for (std::map<wxString, std::pair<wxBitmap*, bool>>::iterator it = temp_presets.begin(); it != temp_presets.end(); ++it) {
|
||||
int item_id = Append(it->first, *it->second.first);
|
||||
SetItemTooltip(item_id, preset_descriptions[it->first]);
|
||||
bool is_enabled = it->second.second;
|
||||
if (!is_enabled)
|
||||
set_label_marker(item_id, LABEL_ITEM_DISABLED);
|
||||
validate_selection(it->first == selected);
|
||||
}
|
||||
nonsys_presets.clear();
|
||||
//nonsys_presets.emplace(temp_presets);
|
||||
nonsys_presets.insert(temp_presets.begin(), temp_presets.end());
|
||||
}
|
||||
else {
|
||||
for (std::map<wxString, std::pair<wxBitmap*, bool>>::iterator it = nonsys_presets.begin(); it != nonsys_presets.end(); ++it) {
|
||||
int item_id = Append(it->first, *it->second.first);
|
||||
SetItemTooltip(item_id, preset_descriptions[it->first]);
|
||||
bool is_enabled = it->second.second;
|
||||
if (!is_enabled)
|
||||
set_label_marker(item_id, LABEL_ITEM_DISABLED);
|
||||
validate_selection(it->first == selected);
|
||||
}
|
||||
}
|
||||
if (m_type == Preset::TYPE_FILAMENT)
|
||||
add_ams_filaments(into_u8(selected));
|
||||
|
||||
//BBS: add project embedded preset logic
|
||||
//if (m_type == Preset::TYPE_CONFIG) {
|
||||
// wxString lian_xu = _L("Lian xu");
|
||||
// bool m_fold = false;
|
||||
// for (auto& f : m_preset_bundle->filament_presets) {
|
||||
// wxString abc = wxString::FromUTF8(f);
|
||||
// if (m_fold = abc.Contains(lian_xu)) {
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// /* wxString lian_xu = _L("Lian xu");
|
||||
// bool m_fold = false;
|
||||
// auto full_config = wxGetApp().preset_bundle->full_config();
|
||||
// std::vector<std::string> filament_types = full_config.option<ConfigOptionStrings>("filament_type")->values;
|
||||
// for (std::string type : filament_types) {
|
||||
// if (type.find("CFC") != std::string::npos) {
|
||||
// m_fold = true;
|
||||
// break;
|
||||
// }
|
||||
// }*/
|
||||
// if (m_fold) {
|
||||
// /* for (std::map<wxString, wxBitmap*>::iterator it = nonsys_presets.begin(); it != nonsys_presets.end(); ++it) {
|
||||
// wxString key = it->first;
|
||||
// temp_presets.insert
|
||||
// }*/
|
||||
// temp_presets.clear();
|
||||
// for (const auto& pair : nonsys_presets) {
|
||||
// wxString key = pair.first;
|
||||
// if (key.Contains(lian_xu)) {
|
||||
// temp_presets.emplace(pair);
|
||||
// }
|
||||
// }
|
||||
// for (std::map<wxString, std::pair<wxBitmap*, bool>>::iterator it = temp_presets.begin(); it != temp_presets.end(); ++it) {
|
||||
// int item_id = Append(it->first, *it->second.first);
|
||||
// SetItemTooltip(item_id, preset_descriptions[it->first]);
|
||||
// bool is_enabled = it->second.second;
|
||||
// if (!is_enabled)
|
||||
// set_label_marker(item_id, LABEL_ITEM_DISABLED);
|
||||
// validate_selection(it->first == selected);
|
||||
// }
|
||||
// if (m_type == Preset::TYPE_CONFIG) {
|
||||
// }
|
||||
// else {
|
||||
// for (std::map<wxString, std::pair<wxBitmap*, bool>>::iterator it = nonsys_presets.begin(); it != nonsys_presets.end(); ++it) {
|
||||
// int item_id = Append(it->first, *it->second.first);
|
||||
// SetItemTooltip(item_id, preset_descriptions[it->first]);
|
||||
// bool is_enabled = it->second.second;
|
||||
// if (!is_enabled)
|
||||
// set_label_marker(item_id, LABEL_ITEM_DISABLED);
|
||||
// validate_selection(it->first == selected);
|
||||
// }
|
||||
// }
|
||||
if (m_type == Preset::TYPE_CONFIG) {
|
||||
for (std::map<wxString, std::pair<wxBitmap*, bool>>::iterator it = nonsys_presets.begin(); it != nonsys_presets.end(); ++it) {
|
||||
int item_id = Append(it->first, *it->second.first);
|
||||
SetItemTooltip(item_id, preset_descriptions[it->first]);
|
||||
bool is_enabled = it->second.second;
|
||||
if (!is_enabled)
|
||||
set_label_marker(item_id, LABEL_ITEM_DISABLED);
|
||||
validate_selection(it->first == selected);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -882,7 +882,7 @@ void Tab::update_changed_ui()
|
|||
return;
|
||||
|
||||
const bool deep_compare = (m_type == Preset::TYPE_PRINTER || m_type == Preset::TYPE_PRINT || m_type == Preset::TYPE_FILAMENT
|
||||
|| m_type == Preset::TYPE_SLA_MATERIAL || m_type == Preset::TYPE_MODEL);
|
||||
|| m_type == Preset::TYPE_SLA_MATERIAL || m_type == Preset::TYPE_MODEL || m_type == Preset::TYPE_CONFIG);
|
||||
auto dirty_options = m_presets->current_dirty_options(deep_compare);
|
||||
auto nonsys_options = m_presets->current_different_from_parent_options(deep_compare);
|
||||
if (m_type == Preset::TYPE_PRINTER && static_cast<TabPrinter*>(this)->m_printer_technology == ptFFF) {
|
||||
|
@ -3856,12 +3856,13 @@ void TabFilament::toggle_options()
|
|||
//if (m_active_page->title() == "Setting Overrides")
|
||||
// update_filament_overrides_page();
|
||||
|
||||
wxString abc = wxString::FromUTF8(m_preset_bundle->filaments.get_edited_preset().name);
|
||||
//wxString abc = wxString::FromUTF8(m_preset_bundle->filaments.get_edited_preset().name);
|
||||
std::string type;
|
||||
m_preset_bundle->filaments.get_edited_preset().get_filament_type(type);
|
||||
//CFC
|
||||
wxString lian_xu = _L("Lian xu");
|
||||
if (abc.Contains(lian_xu)) {
|
||||
//wxString lian_xu = _L("Lian xu");
|
||||
//if (abc.Contains(lian_xu)) {
|
||||
if (type.find("CFC") != std::string::npos) {
|
||||
if (m_active_page->title() == "Filament")
|
||||
{
|
||||
toggle_option("filament_type", false);
|
||||
|
@ -4211,29 +4212,32 @@ void TabConfig::reload_config()
|
|||
this->compatible_widget_reload(m_compatible_printers);
|
||||
Tab::reload_config();
|
||||
}
|
||||
//void TabConfig::update_description_lines()
|
||||
//{
|
||||
// Tab::update_description_lines();
|
||||
//
|
||||
// if (!m_active_page)
|
||||
// return;
|
||||
//
|
||||
// //if (m_active_page->title() == "Cooling" && m_cooling_description_line)
|
||||
// // m_cooling_description_line->SetText(from_u8(PresetHints::cooling_description(m_presets->get_edited_preset())));
|
||||
// //BBS
|
||||
// //if (m_active_page->title() == "Filament" && m_volumetric_speed_description_line)
|
||||
// // this->update_volumetric_flow_preset_hints();
|
||||
//}
|
||||
|
||||
void TabConfig::update_description_lines()
|
||||
{
|
||||
Tab::update_description_lines();
|
||||
|
||||
if (!m_active_page)
|
||||
return;
|
||||
|
||||
//if (m_active_page->title() == "Cooling" && m_cooling_description_line)
|
||||
// m_cooling_description_line->SetText(from_u8(PresetHints::cooling_description(m_presets->get_edited_preset())));
|
||||
//BBS
|
||||
//if (m_active_page->title() == "Filament" && m_volumetric_speed_description_line)
|
||||
// this->update_volumetric_flow_preset_hints();
|
||||
}
|
||||
|
||||
void TabConfig::toggle_options() {
|
||||
if (!m_active_page)
|
||||
return;
|
||||
|
||||
if (m_preset_bundle) {
|
||||
bool is_BBL_printer = m_preset_bundle->configs.get_edited_preset().is_bbl_vendor_preset(m_preset_bundle);
|
||||
bool is_BBL_printer = m_preset_bundle->printers.get_edited_preset().is_bbl_vendor_preset(m_preset_bundle);
|
||||
m_config_manipulation.set_is_BBL_Printer(is_BBL_printer);
|
||||
}
|
||||
|
||||
m_config_manipulation.toggle_print_fff_options(m_config, m_type < Preset::TYPE_COUNT);
|
||||
//m_config_manipulation.toggle_print_fff_options(m_config, int(intptr_t(m_extruder_switch->GetClientData())), m_type < Preset::TYPE_COUNT);
|
||||
bool enable_support = m_preset_bundle->prints.get_edited_preset().config.opt_bool("enable_support");
|
||||
|
||||
for (auto el : { "support_style", "support_base_pattern",
|
||||
|
@ -4470,6 +4474,7 @@ void TabConfig::update() {
|
|||
m_update_cnt++;
|
||||
|
||||
m_config_manipulation.update_print_fff_config(m_config, m_type < Preset::TYPE_COUNT, m_type == Preset::TYPE_PLATE);
|
||||
update_description_lines();
|
||||
m_parent->Layout();
|
||||
m_update_cnt--;
|
||||
|
||||
|
|
|
@ -589,7 +589,7 @@ public:
|
|||
|
||||
void build() override;
|
||||
void reload_config() override;
|
||||
//void update_description_lines() override;
|
||||
void update_description_lines() override;
|
||||
void toggle_options() override;
|
||||
void update() override;
|
||||
void clear_pages() override;
|
||||
|
|
Loading…
Reference in New Issue