ENH: limit slope start height range
Jira: 6654 Signed-off-by: qing.zhang <qing.zhang@bambulab.com> Change-Id: I9dd45022e1350ace220901e70822d27773817221
This commit is contained in:
parent
4127979af6
commit
41c71a6aac
|
@ -2877,7 +2877,7 @@ void PrintConfigDef::init_fff_params()
|
||||||
def->sidetext = L("mm or %");
|
def->sidetext = L("mm or %");
|
||||||
def->min = 0;
|
def->min = 0;
|
||||||
def->mode = comAdvanced;
|
def->mode = comAdvanced;
|
||||||
def->set_default_value(new ConfigOptionFloatOrPercent(0.1, false));
|
def->set_default_value(new ConfigOptionFloatOrPercent(50, true));
|
||||||
|
|
||||||
def = this->add("seam_slope_entire_loop", coBool);
|
def = this->add("seam_slope_entire_loop", coBool);
|
||||||
def->label = L("Scarf around entire wall");
|
def->label = L("Scarf around entire wall");
|
||||||
|
|
|
@ -224,6 +224,38 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con
|
||||||
apply(config, &new_conf);
|
apply(config, &new_conf);
|
||||||
is_msg_dlg_already_exist = false;
|
is_msg_dlg_already_exist = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//BBS: limit scarf seam start height range
|
||||||
|
bool apply_scarf_seam = config->opt_enum<SeamScarfType>("seam_slope_type") != SeamScarfType::None;
|
||||||
|
if (apply_scarf_seam) {
|
||||||
|
// scarf seam start height shouldn't small than zero
|
||||||
|
double layer_height = config->opt_float("layer_height");
|
||||||
|
double scarf_seam_slope_height = config->option<ConfigOptionFloatOrPercent>("seam_slope_start_height")->get_abs_value(layer_height);
|
||||||
|
|
||||||
|
if (scarf_seam_slope_height < EPSILON) {
|
||||||
|
const wxString msg_text = _(L("Too small scarf start height.\nReset to 50%"));
|
||||||
|
MessageDialog dialog(m_msg_dlg_parent, msg_text, "", wxICON_WARNING | wxOK);
|
||||||
|
DynamicPrintConfig new_conf = *config;
|
||||||
|
is_msg_dlg_already_exist = true;
|
||||||
|
dialog.ShowModal();
|
||||||
|
new_conf.set_key_value("seam_slope_start_height", new ConfigOptionFloatOrPercent(50, true));
|
||||||
|
apply(config, &new_conf);
|
||||||
|
is_msg_dlg_already_exist = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// scarf seam start height shouldn't bigger than layer height
|
||||||
|
if (scarf_seam_slope_height > config->opt_float("layer_height") + EPSILON) {
|
||||||
|
const wxString msg_text = _(L("Too big scarf start height.\nReset to 50%"));
|
||||||
|
MessageDialog dialog(m_msg_dlg_parent, msg_text, "", wxICON_WARNING | wxOK);
|
||||||
|
DynamicPrintConfig new_conf = *config;
|
||||||
|
is_msg_dlg_already_exist = true;
|
||||||
|
dialog.ShowModal();
|
||||||
|
new_conf.set_key_value("seam_slope_start_height", new ConfigOptionFloatOrPercent(50, true));
|
||||||
|
apply(config, &new_conf);
|
||||||
|
is_msg_dlg_already_exist = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//BBS: top_area_threshold showed if the top one wall function be applyed
|
//BBS: top_area_threshold showed if the top one wall function be applyed
|
||||||
bool top_one_wall_apply = config->opt_enum<TopOneWallType>("top_one_wall_type") == TopOneWallType::None;
|
bool top_one_wall_apply = config->opt_enum<TopOneWallType>("top_one_wall_type") == TopOneWallType::None;
|
||||||
toggle_line("top_area_threshold", !top_one_wall_apply);
|
toggle_line("top_area_threshold", !top_one_wall_apply);
|
||||||
|
|
Loading…
Reference in New Issue