ENH: Re-open support independent layer height

Allow user to disable support independent layer height when prime tower closed.
Fix wrong WIKI link jumping.

JIRA: STUDIO-1685
JIRA: STUDIO-2308
Change-Id: I894fdd37b707c53e17fd4ad7d1518897f307e557
(cherry picked from commit e10d31e123306a0893087ea03693303768a2daf6)
This commit is contained in:
MusangKing 2023-02-14 14:16:28 +08:00 committed by Lane.Wei
parent ee3e8fc515
commit 4cb8b1e125
5 changed files with 17 additions and 7 deletions

View file

@ -725,7 +725,7 @@ static std::vector<std::string> s_Preset_print_options {
"raft_layers", "raft_first_layer_density", "raft_first_layer_expansion", "raft_contact_distance", "raft_expansion",
"support_base_pattern", "support_base_pattern_spacing", "support_expansion", "support_style",
// BBS
//"independent_support_layer_height",
"independent_support_layer_height",
"support_angle", "support_interface_top_layers", "support_interface_bottom_layers",
"support_interface_pattern", "support_interface_spacing", "support_interface_loop_pattern",
"support_top_z_distance", "support_on_build_plate_only","support_critical_regions_only", "bridge_no_support", "thick_bridges", "max_bridge_length", "print_sequence",

View file

@ -203,7 +203,8 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
steps.emplace_back(psWipeTower);
steps.emplace_back(psSkirtBrim);
} else if (opt_key == "filament_soluble"
|| opt_key == "filament_is_support") {
|| opt_key == "filament_is_support"
|| opt_key == "independent_support_layer_height") {
steps.emplace_back(psWipeTower);
// Soluble support interface / non-soluble base interface produces non-soluble interface layers below soluble interface layers.
// Thus switching between soluble / non-soluble interface layer material may require recalculation of supports.

View file

@ -2694,7 +2694,8 @@ void PrintConfigDef::init_fff_params()
def = this->add("independent_support_layer_height", coBool);
def->label = L("Independent support layer height");
def->category = L("Support");
def->tooltip = L("Support layer uses layer height independent with object layer. This is to support customizing z-gap and save print time.");
def->tooltip = L("Support layer uses layer height independent with object layer. This is to support customizing z-gap and save print time."
"This option will be invalid when the prime tower is enabled.");
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionBool(true));
@ -4031,10 +4032,12 @@ void DynamicPrintConfig::normalize_fdm(int used_filaments)
//if (alh_opt)
// alh_opt->value = false;
}
/* BBS: MusangKing - not sure if this is still valid, just comment it out cause "Independent support layer height" is re-opened.
else {
if (islh_opt)
islh_opt->value = true;
}
*/
}
}
@ -4120,6 +4123,7 @@ t_config_option_keys DynamicPrintConfig::normalize_fdm_2(int num_objects, int us
// //alh_opt->value = false;
//}
}
/* BBSMusangKing - use "global->support->Independent support layer height" widget to replace previous assignment
else {
if (islh_opt) {
if (!islh_opt->value) {
@ -4129,6 +4133,7 @@ t_config_option_keys DynamicPrintConfig::normalize_fdm_2(int num_objects, int us
//islh_opt->value = true;
}
}
*/
}
return changed_keys;

View file

@ -594,7 +594,7 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
"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_critical_regions_only",
"support_object_xy_distance", "independent_support_layer_height"})
"support_object_xy_distance"/*, "independent_support_layer_height"*/})
toggle_field(el, have_support_material);
toggle_field("support_threshold_angle", have_support_material && is_auto(support_type));
//toggle_field("support_closing_radius", have_support_material && support_style == smsSnug);
@ -648,6 +648,9 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
for (auto el : {"flush_into_infill", "flush_into_support", "flush_into_objects"})
toggle_field(el, have_prime_tower);
// BBS: MusangKing - Hide "Independent support layer height" option
toggle_line("independent_support_layer_height", have_support_material && !have_prime_tower);
bool have_avoid_crossing_perimeters = config->opt_bool("reduce_crossing_wall");
toggle_line("max_travel_detour_distance", have_avoid_crossing_perimeters);

View file

@ -1466,7 +1466,7 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value)
if (is_support_filament(interface_filament_id) && !(m_config->opt_float("support_top_z_distance") == 0 && m_config->opt_float("support_interface_spacing") == 0 &&
m_config->opt_enum<SupportMaterialInterfacePattern>("support_interface_pattern") == SupportMaterialInterfacePattern::smipConcentric)) {
wxString msg_text = _L("When using support material for the support interface, We recommend the following settings:\n"
"0 top z distance, 0 interface spacing, concentric pattern.");
"0 top z distance, 0 interface spacing, concentric pattern and disable independent support layer height");
msg_text += "\n\n" + _L("Change these settings automatically? \n"
"Yes - Change these settings automatically\n"
"No - Do not change these settings for me");
@ -1476,6 +1476,7 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value)
new_conf.set_key_value("support_top_z_distance", new ConfigOptionFloat(0));
new_conf.set_key_value("support_interface_spacing", new ConfigOptionFloat(0));
new_conf.set_key_value("support_interface_pattern", new ConfigOptionEnum<SupportMaterialInterfacePattern>(SupportMaterialInterfacePattern::smipConcentric));
new_conf.set_key_value("independent_support_layer_height", new ConfigOptionBool(false));
m_config_manipulation.apply(m_config, &new_conf);
}
wxGetApp().plater()->update();
@ -1978,10 +1979,10 @@ void TabPrint::build()
optgroup->append_single_option_line("support_expansion", "support#base-pattern");
//optgroup->append_single_option_line("support_interface_loop_pattern");
optgroup->append_single_option_line("support_object_xy_distance", "support#supportobject-xy-distance");
optgroup->append_single_option_line("support_object_xy_distance", "support");
optgroup->append_single_option_line("bridge_no_support", "support#base-pattern");
optgroup->append_single_option_line("max_bridge_length", "support#base-pattern");
//optgroup->append_single_option_line("independent_support_layer_height");
optgroup->append_single_option_line("independent_support_layer_height", "support");
page = add_options_page(L("Others"), "advanced");
optgroup = page->new_optgroup(L("Bed adhension"), L"param_adhension");