add top one wall

This commit is contained in:
Wang YB
2024-01-17 10:59:37 +08:00
parent abbe9d06df
commit eba6ab9ac1
9 changed files with 566 additions and 9 deletions

View File

@@ -236,6 +236,12 @@ static t_config_enum_values s_keys_map_PerimeterGeneratorType {
};
CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(PerimeterGeneratorType)
//w16
static t_config_enum_values s_keys_map_TopOneWallType{{"not apply", int(TopOneWallType::None)},
{"all top", int(TopOneWallType::Alltop)},
{"Only top most", int(TopOneWallType::Onlytopmost)}};
CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(TopOneWallType)
static void assign_printer_technology_to_unknown(t_optiondef_map &options, PrinterTechnology printer_technology)
{
for (std::pair<const t_config_option_key, ConfigOptionDef> &kvp : options)
@@ -3531,6 +3537,19 @@ void PrintConfigDef::init_fff_params()
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionEnum<PerimeterGeneratorType>(PerimeterGeneratorType::Arachne));
//w16
def = this->add("top_one_wall_type", coEnum);
def->label = L("Only one wall on top surfaces");
def->category = L("Layers and Perimeters");
def->tooltip = L("Use only one wall on flat top surface, to give more space to the top infill pattern. Could be applyed on topmost surface or all top surface.");
def->set_enum<TopOneWallType>({
{ "none", L("None") },
{ "Only top most", L("Onlytopmost") },
{ "all top", L("Alltop") }
});
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionEnum<TopOneWallType>(TopOneWallType::None));
def = this->add("wall_transition_length", coFloatOrPercent);
def->label = L("Perimeter transition length");
def->category = L("Advanced");