ENH: support fuzzy all wall lines

Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: If6754b6a958203459882a125048e01b347e0a4db
This commit is contained in:
salt.wei 2023-03-27 11:04:11 +08:00 committed by Lane.Wei
parent 6ee93d5646
commit 6ddcc14577
3 changed files with 8 additions and 4 deletions

View File

@ -801,8 +801,8 @@ void PerimeterGenerator::process_classic()
break; break;
} }
{ {
const bool fuzzify_contours = this->config->fuzzy_skin != FuzzySkinType::None && i == 0 && this->layer_id > 0; const bool fuzzify_contours = this->config->fuzzy_skin != FuzzySkinType::None && ((i == 0 && this->layer_id > 0) || this->config->fuzzy_skin == FuzzySkinType::AllWalls);
const bool fuzzify_holes = fuzzify_contours && this->config->fuzzy_skin == FuzzySkinType::All; const bool fuzzify_holes = fuzzify_contours && (this->config->fuzzy_skin == FuzzySkinType::All || this->config->fuzzy_skin == FuzzySkinType::AllWalls);
for (const ExPolygon& expolygon : offsets) { for (const ExPolygon& expolygon : offsets) {
// Outer contour may overlap with an inner contour, // Outer contour may overlap with an inner contour,
// inner contour may overlap with another inner contour, // inner contour may overlap with another inner contour,

View File

@ -108,7 +108,8 @@ CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(GCodeFlavor)
static t_config_enum_values s_keys_map_FuzzySkinType { static t_config_enum_values s_keys_map_FuzzySkinType {
{ "none", int(FuzzySkinType::None) }, { "none", int(FuzzySkinType::None) },
{ "external", int(FuzzySkinType::External) }, { "external", int(FuzzySkinType::External) },
{ "all", int(FuzzySkinType::All) } { "all", int(FuzzySkinType::All) },
{ "allwalls", int(FuzzySkinType::AllWalls)}
}; };
CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(FuzzySkinType) CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(FuzzySkinType)
@ -1428,8 +1429,10 @@ void PrintConfigDef::init_fff_params()
def->enum_values.push_back("none"); def->enum_values.push_back("none");
def->enum_values.push_back("external"); def->enum_values.push_back("external");
def->enum_values.push_back("all"); def->enum_values.push_back("all");
def->enum_values.push_back("allwalls");
def->enum_labels.push_back(L("None")); def->enum_labels.push_back(L("None"));
def->enum_labels.push_back(L("Outer wall")); def->enum_labels.push_back(L("Contour"));
def->enum_labels.push_back(L("Contour and hole"));
def->enum_labels.push_back(L("All walls")); def->enum_labels.push_back(L("All walls"));
def->mode = comSimple; def->mode = comSimple;
def->set_default_value(new ConfigOptionEnum<FuzzySkinType>(FuzzySkinType::None)); def->set_default_value(new ConfigOptionEnum<FuzzySkinType>(FuzzySkinType::None));

View File

@ -40,6 +40,7 @@ enum class FuzzySkinType {
None, None,
External, External,
All, All,
AllWalls,
}; };
enum PrintHostType { enum PrintHostType {