diff --git a/src/libslic3r/Fill/Fill.cpp b/src/libslic3r/Fill/Fill.cpp index 0206951dc..bdb74c2c4 100644 --- a/src/libslic3r/Fill/Fill.cpp +++ b/src/libslic3r/Fill/Fill.cpp @@ -608,7 +608,7 @@ void Layer::make_ironing() ironing_params.line_spacing = config.ironing_spacing; ironing_params.height = default_layer_height * 0.01 * config.ironing_flow; ironing_params.speed = config.ironing_speed; - ironing_params.angle = config.infill_direction * M_PI / 180.; + ironing_params.angle = config.ironing_direction * M_PI / 180.; ironing_params.pattern = config.ironing_pattern; ironing_params.layerm = layerm; by_extruder.emplace_back(ironing_params); diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index d5daf3ee1..0c715bb51 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -760,7 +760,7 @@ static std::vector s_Preset_print_options { "seam_position", "wall_infill_order", "sparse_infill_density", "sparse_infill_pattern", "sparse_infill_anchor", "sparse_infill_anchor_max", "top_surface_pattern", "bottom_surface_pattern", "internal_solid_infill_pattern", "infill_direction", "bridge_angle", "minimum_sparse_infill_area", "reduce_infill_retraction", "ironing_pattern", "ironing_type", - "ironing_flow", "ironing_speed", "ironing_spacing", + "ironing_flow", "ironing_speed", "ironing_spacing","ironing_direction", "max_travel_detour_distance", "fuzzy_skin", "fuzzy_skin_thickness", "fuzzy_skin_point_distance", #ifdef HAS_PRESSURE_EQUALIZER diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index e9049f045..5ea4939e3 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -1929,6 +1929,16 @@ void PrintConfigDef::init_fff_params() def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(20)); + def = this->add("ironing_direction", coFloat); + def->label = L("ironing direction"); + def->category = L("Quality"); + def->tooltip = L("Angle for ironing, which controls the angle of the nozzle when ironing"); + def->sidetext = L("°"); + def->min = 0; + def->max = 360; + def->mode = comDevelop; + def->set_default_value(new ConfigOptionFloat(45)); + def = this->add("layer_change_gcode", coString); def->label = L("Layer change G-code"); def->tooltip = L("This gcode part is inserted at every layer change after lift z"); diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index 3f1fa4a2a..ea5330a54 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -751,6 +751,7 @@ PRINT_CONFIG_CLASS_DEFINE( ((ConfigOptionEnum, ironing_pattern)) ((ConfigOptionPercent, ironing_flow)) ((ConfigOptionFloat, ironing_spacing)) + ((ConfigOptionFloat, ironing_direction)) ((ConfigOptionFloat, ironing_speed)) // Detect bridging perimeters ((ConfigOptionBool, detect_overhang_wall)) diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index 06e810d5a..9ff5fb5b9 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -647,7 +647,8 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co toggle_line(el, have_raft); bool has_ironing = (config->opt_enum("ironing_type") != IroningType::NoIroning); - for (auto el : {"ironing_pattern", "ironing_flow", "ironing_spacing", "ironing_speed"}) + for (auto el : { + "ironing_pattern","ironing_speed", "ironing_flow", "ironing_spacing", "ironing_direction"}) toggle_line(el, has_ironing); // bool have_sequential_printing = (config->opt_enum("print_sequence") == PrintSequence::ByObject); diff --git a/src/slic3r/GUI/GUI_Factories.cpp b/src/slic3r/GUI/GUI_Factories.cpp index ffe7ff42e..6ae5dc379 100644 --- a/src/slic3r/GUI/GUI_Factories.cpp +++ b/src/slic3r/GUI/GUI_Factories.cpp @@ -91,8 +91,7 @@ std::map> SettingsFactory::OBJECT_C }; std::map> SettingsFactory::PART_CATEGORY_SETTINGS= -{ - { L("Quality"), {{"ironing_type", "",8},{"ironing_flow", "",9},{"ironing_spacing", "",10},{"bridge_flow", "",11} + {{L("Quality"), {{"ironing_type", "", 8}, {"ironing_flow", "", 9}, {"ironing_spacing", "", 10}, {"ironing_speed", "", 11}, {"ironing_direction", "",12} }}, { L("Strength"), {{"wall_loops", "",1},{"top_shell_layers", "",1},{"top_shell_thickness", "",1}, {"bottom_shell_layers", "",1}, {"bottom_shell_thickness", "",1}, {"sparse_infill_density", "",1}, diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 2228f77e0..872b3291b 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1866,6 +1866,7 @@ void TabPrint::build() optgroup->append_single_option_line("ironing_speed"); optgroup->append_single_option_line("ironing_flow"); optgroup->append_single_option_line("ironing_spacing"); + optgroup->append_single_option_line("ironing_direction"); optgroup = page->new_optgroup(L("Wall generator"), L"param_wall"); optgroup->append_single_option_line("wall_generator");