mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-07-29 13:52:07 +00:00
Merge branch 'main' into dev/bbl-network-upd
This commit is contained in:
@@ -262,13 +262,6 @@ AboutDialog::AboutDialog()
|
||||
vesizer->Add(version, 0, wxRIGHT | wxALIGN_RIGHT, FromDIP(20));
|
||||
vesizer->AddSpacer(FromDIP(5));
|
||||
vesizer->Add(credits_string, 0, wxRIGHT | wxALIGN_RIGHT, FromDIP(20));
|
||||
// #if BBL_INTERNAL_TESTING
|
||||
// wxString build_time = wxString::Format("Build Time: %s", std::string(SLIC3R_BUILD_TIME));
|
||||
// wxStaticText* build_time_text = new wxStaticText(this, wxID_ANY, build_time, wxDefaultPosition, wxDefaultSize);
|
||||
// build_time_text->SetForegroundColour(wxColour("#FFFFFE"));
|
||||
// build_time_text->SetBackgroundColour(wxColour("#00AF42"));
|
||||
// vesizer->Add(build_time_text, 0, wxALL | wxALIGN_CENTER_HORIZONTAL, FromDIP(5));
|
||||
// #endif
|
||||
vesizer->Add(0, 0, 1, wxEXPAND, FromDIP(5));
|
||||
}
|
||||
|
||||
|
||||
@@ -294,6 +294,7 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con
|
||||
}
|
||||
|
||||
double sparse_infill_density = config->option<ConfigOptionPercent>("sparse_infill_density")->value;
|
||||
int fill_multiline = config->option<ConfigOptionInt>("fill_multiline")->value;
|
||||
auto timelapse_type = config->opt_enum<TimelapseType>("timelapse_type");
|
||||
|
||||
if (!is_plate_config &&
|
||||
@@ -546,6 +547,20 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
|
||||
bool have_combined_infill = config->opt_bool("infill_combination") && have_infill;
|
||||
toggle_line("infill_combination_max_layer_height", have_combined_infill);
|
||||
|
||||
// Infill patterns that support multiline infill.
|
||||
InfillPattern pattern = config->opt_enum<InfillPattern>("sparse_infill_pattern");
|
||||
bool have_multiline_infill_pattern = pattern == ipGyroid || pattern == ipGrid || pattern == ipRectilinear || pattern == ipTpmsD || pattern == ipCrossHatch || pattern == ipHoneycomb || pattern == ip2DLattice || pattern == ip2DHoneycomb ||
|
||||
pattern == ipCubic || pattern == ipStars || pattern == ipAlignedRectilinear || pattern == ipLightning || pattern == ip3DHoneycomb || pattern == ipAdaptiveCubic || pattern == ipSupportCubic;
|
||||
toggle_line("fill_multiline", have_multiline_infill_pattern);
|
||||
|
||||
// If the infill pattern does not support multiline infill, set fill_multiline to 1.
|
||||
if (!have_multiline_infill_pattern) {
|
||||
DynamicPrintConfig new_conf = *config;
|
||||
new_conf.set_key_value("fill_multiline", new ConfigOptionInt(1));
|
||||
apply(config, &new_conf);
|
||||
}
|
||||
|
||||
// Hide infill anchor max if sparse_infill_pattern is not line or if sparse_infill_pattern is line but infill_anchor_max is 0.
|
||||
bool infill_anchor = config->opt_enum<InfillPattern>("sparse_infill_pattern") != ipLine;
|
||||
toggle_field("infill_anchor_max",infill_anchor);
|
||||
|
||||
@@ -576,6 +591,8 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
|
||||
bool has_solid_infill = has_top_shell || has_bottom_shell;
|
||||
toggle_field("top_surface_pattern", has_top_shell);
|
||||
toggle_field("bottom_surface_pattern", has_bottom_shell);
|
||||
toggle_field("top_surface_density", has_top_shell);
|
||||
toggle_field("bottom_surface_density", has_bottom_shell);
|
||||
|
||||
for (auto el : { "infill_direction", "sparse_infill_line_width",
|
||||
"sparse_infill_speed", "bridge_speed", "internal_bridge_speed", "bridge_angle", "internal_bridge_angle",
|
||||
|
||||
@@ -67,10 +67,10 @@ private:
|
||||
static bool get_stream_url(std::string *url = nullptr);
|
||||
|
||||
private:
|
||||
static constexpr wxMediaState MEDIASTATE_IDLE = (wxMediaState) 3;
|
||||
static constexpr wxMediaState MEDIASTATE_INITIALIZING = (wxMediaState) 4;
|
||||
static constexpr wxMediaState MEDIASTATE_LOADING = (wxMediaState) 5;
|
||||
static constexpr wxMediaState MEDIASTATE_BUFFERING = (wxMediaState) 6;
|
||||
static const wxMediaState MEDIASTATE_IDLE = (wxMediaState) 3;
|
||||
static const wxMediaState MEDIASTATE_INITIALIZING = (wxMediaState) 4;
|
||||
static const wxMediaState MEDIASTATE_LOADING = (wxMediaState) 5;
|
||||
static const wxMediaState MEDIASTATE_BUFFERING = (wxMediaState) 6;
|
||||
|
||||
wxMediaCtrl2 * m_media_ctrl;
|
||||
wxMediaState m_last_state = MEDIASTATE_IDLE;
|
||||
|
||||
@@ -263,6 +263,28 @@ wxColor PresetComboBox::different_color(wxColor const &clr)
|
||||
wxString PresetComboBox::get_tooltip(const Preset &preset)
|
||||
{
|
||||
wxString tooltip = from_u8(preset.name);
|
||||
|
||||
// Add filament notes if available for filament presets
|
||||
if (m_type == Preset::TYPE_FILAMENT) {
|
||||
const DynamicConfig* config = &preset.config;
|
||||
Tab* tab = wxGetApp().get_tab(m_type);
|
||||
if (tab && tab->current_preset_is_dirty() && tab->get_presets()->get_selected_preset().name == preset.name) {
|
||||
config = tab->get_config();
|
||||
}
|
||||
|
||||
if (config->has("filament_notes")) {
|
||||
const ConfigOptionStrings* notes_opt = config->option<ConfigOptionStrings>("filament_notes");
|
||||
if (notes_opt && !notes_opt->values.empty() && !notes_opt->values[0].empty()) {
|
||||
std::string notes = notes_opt->values[0];
|
||||
// Truncate if longer than 200 characters
|
||||
if (notes.length() > 200) {
|
||||
notes = notes.substr(0, 197) + "...";
|
||||
}
|
||||
tooltip += "\n" + from_u8(notes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// BBS: FIXME
|
||||
#if 0
|
||||
if (m_type == Preset::TYPE_FILAMENT) {
|
||||
|
||||
@@ -1522,7 +1522,7 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value)
|
||||
}
|
||||
update_wiping_button_visibility();
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (opt_key == "single_extruder_multi_material" ){
|
||||
const auto bSEMM = m_config->opt_bool("single_extruder_multi_material");
|
||||
@@ -2137,15 +2137,15 @@ void TabPrint::build()
|
||||
optgroup->append_single_option_line("ironing_angle");
|
||||
|
||||
optgroup = page->new_optgroup(L("Wall generator"), L"param_wall_generator");
|
||||
optgroup->append_single_option_line("wall_generator", "quality_settings_wall-generator");
|
||||
optgroup->append_single_option_line("wall_transition_angle");
|
||||
optgroup->append_single_option_line("wall_transition_filter_deviation");
|
||||
optgroup->append_single_option_line("wall_transition_length");
|
||||
optgroup->append_single_option_line("wall_distribution_count");
|
||||
optgroup->append_single_option_line("initial_layer_min_bead_width");
|
||||
optgroup->append_single_option_line("min_bead_width");
|
||||
optgroup->append_single_option_line("min_feature_size");
|
||||
optgroup->append_single_option_line("min_length_factor");
|
||||
optgroup->append_single_option_line("wall_generator", "quality_settings_wall_generator");
|
||||
optgroup->append_single_option_line("wall_transition_angle", "quality_settings_wall_generator#arachne");
|
||||
optgroup->append_single_option_line("wall_transition_filter_deviation", "quality_settings_wall_generator#arachne");
|
||||
optgroup->append_single_option_line("wall_transition_length", "quality_settings_wall_generator#arachne");
|
||||
optgroup->append_single_option_line("wall_distribution_count", "quality_settings_wall_generator#arachne");
|
||||
optgroup->append_single_option_line("initial_layer_min_bead_width", "quality_settings_wall_generator#arachne");
|
||||
optgroup->append_single_option_line("min_bead_width", "quality_settings_wall_generator#arachne");
|
||||
optgroup->append_single_option_line("min_feature_size", "quality_settings_wall_generator#arachne");
|
||||
optgroup->append_single_option_line("min_length_factor", "quality_settings_wall_generator#arachne");
|
||||
|
||||
optgroup = page->new_optgroup(L("Walls and surfaces"), L"param_wall_surface");
|
||||
optgroup->append_single_option_line("wall_sequence");
|
||||
@@ -2195,41 +2195,42 @@ void TabPrint::build()
|
||||
optgroup->append_single_option_line("detect_thin_wall");
|
||||
|
||||
optgroup = page->new_optgroup(L("Top/bottom shells"), L"param_shell");
|
||||
optgroup->append_single_option_line("top_shell_layers");
|
||||
optgroup->append_single_option_line("top_shell_thickness");
|
||||
optgroup->append_single_option_line("top_surface_density");
|
||||
optgroup->append_single_option_line("top_surface_pattern");
|
||||
optgroup->append_single_option_line("bottom_shell_layers");
|
||||
optgroup->append_single_option_line("bottom_shell_thickness");
|
||||
optgroup->append_single_option_line("bottom_surface_density");
|
||||
optgroup->append_single_option_line("bottom_surface_pattern");
|
||||
optgroup->append_single_option_line("top_bottom_infill_wall_overlap");
|
||||
optgroup->append_single_option_line("top_shell_layers", "strength_top-bottom_shells");
|
||||
optgroup->append_single_option_line("top_shell_thickness", "strength_top-bottom_shells");
|
||||
optgroup->append_single_option_line("top_surface_density", "strength_top-bottom_shells");
|
||||
optgroup->append_single_option_line("top_surface_pattern", "strength_top-bottom_shells");
|
||||
optgroup->append_single_option_line("bottom_shell_layers", "strength_top-bottom_shells");
|
||||
optgroup->append_single_option_line("bottom_shell_thickness", "strength_top-bottom_shells");
|
||||
optgroup->append_single_option_line("bottom_surface_density", "strength_top-bottom_shells");
|
||||
optgroup->append_single_option_line("bottom_surface_pattern", "strength_top-bottom_shells");
|
||||
optgroup->append_single_option_line("top_bottom_infill_wall_overlap", "strength_top-bottom_shells");
|
||||
|
||||
optgroup = page->new_optgroup(L("Infill"), L"param_infill");
|
||||
optgroup->append_single_option_line("sparse_infill_density", "strength_settings_infill#sparse-infill-density");
|
||||
optgroup->append_single_option_line("fill_multiline"); // fill multiline
|
||||
optgroup->append_single_option_line("sparse_infill_pattern", "strength_settings_infill#sparse-infill-pattern");
|
||||
optgroup->append_single_option_line("infill_direction");
|
||||
optgroup->append_single_option_line("sparse_infill_rotate_template");
|
||||
optgroup->append_single_option_line("skin_infill_density");
|
||||
optgroup->append_single_option_line("skeleton_infill_density");
|
||||
optgroup->append_single_option_line("infill_lock_depth");
|
||||
optgroup->append_single_option_line("skin_infill_depth");
|
||||
optgroup->append_single_option_line("skin_infill_line_width", "parameter/line-width");
|
||||
optgroup->append_single_option_line("skeleton_infill_line_width", "parameter/line-width");
|
||||
optgroup->append_single_option_line("symmetric_infill_y_axis");
|
||||
optgroup->append_single_option_line("infill_shift_step");
|
||||
optgroup->append_single_option_line("infill_direction", "strength_settings_infill#direction");
|
||||
optgroup->append_single_option_line("sparse_infill_rotate_template", "strength_settings_infill#rotation");
|
||||
optgroup->append_single_option_line("skin_infill_density", "strength_settings_infill#locked-zag");
|
||||
optgroup->append_single_option_line("skeleton_infill_density", "strength_settings_infill#locked-zag");
|
||||
optgroup->append_single_option_line("infill_lock_depth", "strength_settings_infill#locked-zag");
|
||||
optgroup->append_single_option_line("skin_infill_depth", "strength_settings_infill#locked-zag");
|
||||
optgroup->append_single_option_line("skin_infill_line_width", "strength_settings_infill#locked-zag");
|
||||
optgroup->append_single_option_line("skeleton_infill_line_width", "strength_settings_infill#locked-zag");
|
||||
optgroup->append_single_option_line("symmetric_infill_y_axis", "strength_settings_infill#zig-zag");
|
||||
optgroup->append_single_option_line("infill_shift_step", "strength_settings_infill#cross-hatch");
|
||||
|
||||
optgroup->append_single_option_line("lattice_angle_1");
|
||||
optgroup->append_single_option_line("lattice_angle_2");
|
||||
optgroup->append_single_option_line("infill_overhang_angle");
|
||||
optgroup->append_single_option_line("infill_anchor_max");
|
||||
optgroup->append_single_option_line("infill_anchor");
|
||||
optgroup->append_single_option_line("internal_solid_infill_pattern");
|
||||
optgroup->append_single_option_line("solid_infill_direction");
|
||||
optgroup->append_single_option_line("solid_infill_rotate_template");
|
||||
optgroup->append_single_option_line("gap_fill_target");
|
||||
optgroup->append_single_option_line("filter_out_gap_fill");
|
||||
optgroup->append_single_option_line("infill_wall_overlap");
|
||||
optgroup->append_single_option_line("lattice_angle_1", "strength_settings_infill#2d-lattice");
|
||||
optgroup->append_single_option_line("lattice_angle_2", "strength_settings_infill#2d-lattice");
|
||||
optgroup->append_single_option_line("infill_overhang_angle", "strength_settings_infill#2d-honeycomb");
|
||||
optgroup->append_single_option_line("infill_anchor_max", "strength_settings_infill#anchor");
|
||||
optgroup->append_single_option_line("infill_anchor", "strength_settings_infill#anchor");
|
||||
optgroup->append_single_option_line("internal_solid_infill_pattern", "strength_settings_infill#internal-solid-infill");
|
||||
optgroup->append_single_option_line("solid_infill_direction", "strength_settings_infill");
|
||||
optgroup->append_single_option_line("solid_infill_rotate_template", "strength_settings_infill");
|
||||
optgroup->append_single_option_line("gap_fill_target", "strength_settings_infill#apply-gap-fill");
|
||||
optgroup->append_single_option_line("filter_out_gap_fill", "strength_settings_infill");
|
||||
optgroup->append_single_option_line("infill_wall_overlap", "strength_settings_infill#infill-wall-overlap");
|
||||
|
||||
optgroup = page->new_optgroup(L("Advanced"), L"param_advanced");
|
||||
optgroup->append_single_option_line("bridge_angle");
|
||||
@@ -2302,9 +2303,9 @@ void TabPrint::build()
|
||||
optgroup->append_single_option_line("default_junction_deviation");
|
||||
|
||||
optgroup = page->new_optgroup(L("Advanced"), L"param_advanced", 15);
|
||||
optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope", "speed_extrusion_rate_smoothing");
|
||||
optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope_segment_length", "speed_extrusion_rate_smoothing");
|
||||
optgroup->append_single_option_line("extrusion_rate_smoothing_external_perimeter_only", "speed_extrusion_rate_smoothing");
|
||||
optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope", "speed_settings_extrusion_rate_smoothing");
|
||||
optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope_segment_length", "speed_settings_extrusion_rate_smoothing");
|
||||
optgroup->append_single_option_line("extrusion_rate_smoothing_external_perimeter_only", "speed_settings_extrusion_rate_smoothing");
|
||||
|
||||
page = add_options_page(L("Support"), "custom-gcode_support"); // ORCA: icon only visible on placeholders
|
||||
optgroup = page->new_optgroup(L("Support"), L"param_support");
|
||||
|
||||
Reference in New Issue
Block a user