From d5cc4e703d7b88690dfb5c5ce45692e73eba5a96 Mon Sep 17 00:00:00 2001 From: cjw Date: Tue, 25 Mar 2025 14:53:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=85=B7=E6=A0=8F=E6=8B=86=E5=88=86?= =?UTF-8?q?=E3=80=82=E8=BF=9E=E7=BB=AD=E6=9D=90=E6=96=99=E7=A6=81=E7=94=A8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- slic3r/GUI/GLCanvas3D.cpp | 4 +- slic3r/GUI/Plater.cpp | 2 + slic3r/GUI/Tab.cpp | 218 +++++++++++++++++++++++++----- slic3r/GUI/Widgets/SideButton.cpp | 3 +- 4 files changed, 187 insertions(+), 40 deletions(-) diff --git a/slic3r/GUI/GLCanvas3D.cpp b/slic3r/GUI/GLCanvas3D.cpp index e1bc240..7dbbacf 100644 --- a/slic3r/GUI/GLCanvas3D.cpp +++ b/slic3r/GUI/GLCanvas3D.cpp @@ -7582,7 +7582,7 @@ void GLCanvas3D::_render_main_toolbar() Size cnv_size = get_canvas_size(); float inv_zoom = (float)wxGetApp().plater()->get_camera().get_inv_zoom(); - auto canvas_w = float(get_canvas_size().get_width()); + //auto canvas_w = float(get_canvas_size().get_width()); #if BBS_TOOLBAR_ON_TOP GLToolbar& collapse_toolbar = wxGetApp().plater()->get_collapse_toolbar(); float collapse_toolbar_width = collapse_toolbar.is_enabled() ? collapse_toolbar.get_width() : 0.0f; @@ -7590,7 +7590,7 @@ void GLCanvas3D::_render_main_toolbar() float assemble_width = m_assemble_view_toolbar.get_width(); float separator_width = m_separator_toolbar.get_width(); //float top = 0.5f * (float)cnv_size.get_height() * inv_zoom; - float top = 0.5f * (float)m_main_toolbar.get_width(); + float top = 0.25f * (float)cnv_size.get_height() * inv_zoom; //float left = std::max(-0.5f * cnv_size.get_width(), -0.5f * (m_main_toolbar.get_width() + separator_width + gizmo_width + assemble_width - collapse_toolbar_width)) * inv_zoom; //float left = -0.12f * (float)cnv_size.get_width(); float left = -0.5f * (float)cnv_size.get_width() * inv_zoom; diff --git a/slic3r/GUI/Plater.cpp b/slic3r/GUI/Plater.cpp index 6b24164..5a7d5b8 100644 --- a/slic3r/GUI/Plater.cpp +++ b/slic3r/GUI/Plater.cpp @@ -11293,6 +11293,7 @@ void Plater::export_gcode_3mf(bool export_all) if (export_all) plate_idx = PLATE_ALL_IDX; export_3mf(output_path, SaveStrategy::Silence | SaveStrategy::SplitModel | SaveStrategy::WithGcode | SaveStrategy::SkipModel, plate_idx); // BBS: silence + //export_3mf(output_path, SaveStrategy::WithGcode, plate_idx); // BBS: silence RemovableDriveManager& removable_drive_manager = *wxGetApp().removable_drive_manager(); @@ -11740,6 +11741,7 @@ int Plater::export_3mf(const boost::filesystem::path& output_path, SaveStrategy //BBS: add bbs 3mf logic PlateDataPtrs plate_data_list; p->partplate_list.store_to_3mf_structure(plate_data_list, (strategy & SaveStrategy::WithGcode || strategy & SaveStrategy::WithSliceInfo), export_plate_idx); + //p->partplate_list.store_to_3mf_structure(plate_data_list, (strategy & SaveStrategy::WithGcode), export_plate_idx); // BBS: backup PresetBundle& preset_bundle = *wxGetApp().preset_bundle; diff --git a/slic3r/GUI/Tab.cpp b/slic3r/GUI/Tab.cpp index 5078898..39b51b3 100644 --- a/slic3r/GUI/Tab.cpp +++ b/slic3r/GUI/Tab.cpp @@ -3252,53 +3252,180 @@ void TabFilament::toggle_options() { if (!m_active_page) return; - + //m_active_page->clear(); + //return; bool is_BBL_printer = false; if (m_preset_bundle) { is_BBL_printer = m_preset_bundle->printers.get_edited_preset().is_bbl_vendor_preset( m_preset_bundle); } + //wxString abc = wxGetApp().get_tab(Preset::TYPE_CONFIG)->get_combo_box()->GetTextLabel(); + wxString abc = wxString::FromUTF8( m_preset_bundle->filaments.get_edited_preset().name); + //InfillPattern bcd = m_preset_bundle->configs.get_edited_preset().config.opt_enum("top_surface_pattern"); + wxString lian_xu = _L("Lian xu"); + if (abc.Contains(lian_xu)) { + if (m_active_page->title() == "Filament") + { + toggle_option("filament_type", false); + toggle_option("filament_vendor", false); + //xiamian++ + toggle_option("default_filament_colour", false); + toggle_option("filament_diameter", false); + toggle_option("filament_flow_ratio", false); + toggle_option("filament_density", false); + toggle_option("filament_cost", false); + toggle_option("temperature_vitrification", false); + toggle_option("nozzle_temperature_range_low", false); + toggle_option("nozzle_temperature_range_high", false); + toggle_option("filament_max_volumetric_speed", false); + toggle_option("enable_pressure_advance", false); + //BBS: hide these useless option for bambu printer + toggle_line("enable_pressure_advance", !is_BBL_printer); + if (is_BBL_printer) + toggle_line("pressure_advance", false); + else { + toggle_line("pressure_advance", true); + toggle_option("pressure_advance", m_config->opt_bool("enable_pressure_advance", 0)); + } - if (m_active_page->title() == "Cooling") - { - bool cooling = m_config->opt_bool("slow_down_for_layer_cooling", 0); - toggle_option("slow_down_min_speed", cooling); + bool support_chamber_temp_control = this->m_preset_bundle->printers.get_edited_preset().config.opt_bool("support_chamber_temp_control"); + toggle_line("chamber_temperatures", support_chamber_temp_control); - bool has_enable_overhang_bridge_fan = m_config->opt_bool("enable_overhang_bridge_fan", 0); - for (auto el : { "overhang_fan_speed", "overhang_fan_threshold" }) - toggle_option(el, has_enable_overhang_bridge_fan); - - bool support_air_filtration = m_preset_bundle->printers.get_edited_preset().config.opt_bool("support_air_filtration"); - toggle_line("activate_air_filtration",is_BBL_printer && support_air_filtration); - - for (auto elem : { "during_print_exhaust_fan_speed","complete_print_exhaust_fan_speed" }) - toggle_line(elem, m_config->opt_bool("activate_air_filtration",0)&&support_air_filtration); - - } - if (m_active_page->title() == "Filament") - { - toggle_option("filament_type", false); - toggle_option("filament_vendor", false); - //BBS: hide these useless option for bambu printer - toggle_line("enable_pressure_advance", !is_BBL_printer); - if (is_BBL_printer) - toggle_line("pressure_advance", false); - else { - toggle_line("pressure_advance", true); - toggle_option("pressure_advance", m_config->opt_bool("enable_pressure_advance", 0)); + for (auto el : + { "cool_plate_temp", "cool_plate_temp_initial_layer", "eng_plate_temp", "eng_plate_temp_initial_layer", "textured_plate_temp", "textured_plate_temp_initial_layer" }) + toggle_line(el, is_BBL_printer); } - bool support_chamber_temp_control = this->m_preset_bundle->printers.get_edited_preset().config.opt_bool("support_chamber_temp_control"); - toggle_line("chamber_temperatures", support_chamber_temp_control); + if (m_active_page->title() == "Cooling") + { + toggle_option("close_fan_the_first_x_layers", false); + toggle_option("fan_min_speed", false); + toggle_option("fan_cooling_layer_time", false); + toggle_option("fan_max_speed", false); + toggle_option("slow_down_layer_time", false); + + toggle_line("reduce_fan_stop_start_freq", false); + + toggle_line("slow_down_for_layer_cooling", false); + toggle_option("slow_down_min_speed", false); + + toggle_line("enable_overhang_bridge_fan", false); + toggle_option("overhang_fan_threshold", false); + toggle_option("overhang_fan_speed", false); - for (auto el : - {"cool_plate_temp", "cool_plate_temp_initial_layer", "eng_plate_temp", "eng_plate_temp_initial_layer", "textured_plate_temp", "textured_plate_temp_initial_layer"}) - toggle_line(el, is_BBL_printer); + toggle_option("additional_cooling_fan_speed", false); + + bool support_air_filtration = m_preset_bundle->printers.get_edited_preset().config.opt_bool("support_air_filtration"); + toggle_line("activate_air_filtration", is_BBL_printer && support_air_filtration); + + for (auto elem : { "during_print_exhaust_fan_speed","complete_print_exhaust_fan_speed" }) + toggle_line(elem, m_config->opt_bool("activate_air_filtration", 0) && support_air_filtration); + } + if (m_active_page->title() == "Advanced") { + toggle_option("filament_start_gcode", false); + toggle_option("filament_end_gcode", false); + } + if (m_active_page->title() == "Notes") { + toggle_option("filament_notes", false); + } + if (m_active_page->title() == "Setting Overrides") { + update_filament_overrides_page(); + for (const std::string opt_key : { "filament_retraction_length", + "filament_z_hop", + "filament_z_hop_types", + "filament_retraction_speed", + "filament_deretraction_speed", + //"filament_retract_restart_extra", + "filament_retraction_minimum_travel", + "filament_retract_when_changing_layer", + "filament_wipe", + //BBS + "filament_wipe_distance", + "filament_retract_before_wipe", + "filament_long_retractions_when_cut", + "filament_retraction_distances_when_cut" + }) + toggle_option(opt_key, false); + } } + else { + if (m_active_page->title() == "Cooling") + { + - if (m_active_page->title() == "Setting Overrides") - update_filament_overrides_page(); + toggle_option("close_fan_the_first_x_layers", true); + toggle_option("fan_min_speed", true); + toggle_option("fan_cooling_layer_time", true); + toggle_option("fan_max_speed", true); + toggle_option("slow_down_layer_time", true); + + toggle_line("reduce_fan_stop_start_freq", true); + + toggle_line("slow_down_for_layer_cooling", true); + toggle_option("slow_down_min_speed", true); + + toggle_line("enable_overhang_bridge_fan", true); + toggle_option("overhang_fan_threshold", true); + toggle_option("overhang_fan_speed", true); + + toggle_option("additional_cooling_fan_speed", true); + + bool cooling = m_config->opt_bool("slow_down_for_layer_cooling", 0); + toggle_option("slow_down_min_speed", cooling); + + bool has_enable_overhang_bridge_fan = m_config->opt_bool("enable_overhang_bridge_fan", 0); + for (auto el : { "overhang_fan_speed", "overhang_fan_threshold" }) + toggle_option(el, has_enable_overhang_bridge_fan); + + bool support_air_filtration = m_preset_bundle->printers.get_edited_preset().config.opt_bool("support_air_filtration"); + toggle_line("activate_air_filtration", is_BBL_printer && support_air_filtration); + + for (auto elem : { "during_print_exhaust_fan_speed","complete_print_exhaust_fan_speed" }) + toggle_line(elem, m_config->opt_bool("activate_air_filtration", 0) && support_air_filtration); + + } + if (m_active_page->title() == "Filament") + { + toggle_option("filament_type", false); + toggle_option("filament_vendor", false); + //xiamian++ + toggle_option("default_filament_colour", true); + toggle_option("filament_diameter", true); + toggle_option("filament_flow_ratio", true); + toggle_option("filament_density", true); + toggle_option("filament_cost", true); + toggle_option("temperature_vitrification", true); + toggle_option("nozzle_temperature_range_low", true); + toggle_option("nozzle_temperature_range_high", true); + toggle_option("filament_max_volumetric_speed", true); + toggle_option("enable_pressure_advance", true); + //BBS: hide these useless option for bambu printer + toggle_line("enable_pressure_advance", !is_BBL_printer); + if (is_BBL_printer) + toggle_line("pressure_advance", false); + else { + toggle_line("pressure_advance", true); + toggle_option("pressure_advance", m_config->opt_bool("enable_pressure_advance", 0)); + } + + bool support_chamber_temp_control = this->m_preset_bundle->printers.get_edited_preset().config.opt_bool("support_chamber_temp_control"); + toggle_line("chamber_temperatures", support_chamber_temp_control); + + for (auto el : + { "cool_plate_temp", "cool_plate_temp_initial_layer", "eng_plate_temp", "eng_plate_temp_initial_layer", "textured_plate_temp", "textured_plate_temp_initial_layer" }) + toggle_line(el, is_BBL_printer); + } + if (m_active_page->title() == "Advanced") { + toggle_option("filament_start_gcode", true); + toggle_option("filament_end_gcode", true); + } + if (m_active_page->title() == "Notes") { + toggle_option("filament_notes", true); + } + if (m_active_page->title() == "Setting Overrides") + update_filament_overrides_page(); + } } void TabFilament::update() @@ -3309,7 +3436,7 @@ void TabFilament::update() m_config_manipulation.check_filament_max_volumetric_speed(m_config); m_update_cnt++; - + //m_parent->get_paged_view()->Close(); update_description_lines(); //BBS: GUI refactor //Layout(); @@ -4427,6 +4554,16 @@ void TabConfig::toggle_options() { /* for (auto& f : m_preset_bundle->filament_presets) { cde = f; }*/ + + //for (auto el : { "support_style", "support_base_pattern", + // "support_base_pattern_spacing", "support_expansion", "support_angle", + // "support_interface_pattern", "support_interface_top_layers", "support_interface_bottom_layers", + // "bridge_no_support", "max_bridge_length", "support_top_z_distance", "support_bottom_z_distance", + // //BBS: add more support params to dependent of enable_support + // "support_type", "support_on_build_plate_only", + // "support_remove_small_overhang","support_interface_not_for_body", + // "support_object_xy_distance","support_object_first_layer_gap"/*, "independent_support_layer_height"*/ }) + // toggle_option(el, have_support_material); //p->combos_filament //m_preset_bundle->configs.update_dirty(); @@ -4783,9 +4920,14 @@ void Tab::rebuild_page_tree() // suppress activate page before page_tree rebuilding m_disable_tree_sel_changed_event = true; m_tabctrl->DeleteAllItems(); - + //wxString abc = wxGetApp().get_tab(Preset::TYPE_CONFIG)->get_combo_box()->GetTextLabel(); + //wxString lian_xu = _L("Lian xu"); + //bool isLianxu = abc.Contains(lian_xu); for (auto p : m_pages) { + /* if (isLianxu) { + if (p->g) {} + }*/ if (!p->get_show()) continue; auto itemId = m_tabctrl->AppendItem(translate_category(p->title(), m_type), p->iconID()); @@ -4883,6 +5025,7 @@ bool Tab::select_preset(std::string preset_name, bool delete_current /*=false*/, bool current_dirty = ! delete_current && m_presets->current_is_dirty(); bool print_tab = m_presets->type() == Preset::TYPE_PRINT || m_presets->type() == Preset::TYPE_SLA_PRINT; bool printer_tab = m_presets->type() == Preset::TYPE_PRINTER; + //bool filament_tab = m_presets->type() == Preset::TYPE_FILAMENT; bool canceled = false; bool no_transfer = false; bool technology_changed = false; @@ -5071,7 +5214,8 @@ bool Tab::select_preset(std::string preset_name, bool delete_current /*=false*/, // Initialize the UI from the current preset. if (printer_tab) static_cast(this)->update_pages(); - + /* if (filament_tab) + static_cast(this)->update_pages();*/ if (! is_selected && printer_tab) { /* There is a case, when : diff --git a/slic3r/GUI/Widgets/SideButton.cpp b/slic3r/GUI/Widgets/SideButton.cpp index 89bb2fa..e25b157 100644 --- a/slic3r/GUI/Widgets/SideButton.cpp +++ b/slic3r/GUI/Widgets/SideButton.cpp @@ -30,7 +30,8 @@ SideButton::SideButton(wxWindow* parent, wxString text, wxString icon, long stly border_color.append(0x6B6B6B, StateColor::Disabled); border_color.append(wxColour(23, 129, 63), StateColor::Pressed); - border_color.append(wxColour(48,221,112), StateColor::Hovered); + //border_color.append(wxColour(48,221,112), StateColor::Hovered); + border_color.append(0x0073BC, StateColor::Hovered); //border_color.append(0x00AE42, StateColor::Normal); border_color.append(0x215F9A, StateColor::Normal); border_color.setTakeFocusedAsHovered(false);