diff --git a/resources/profiles/BBL.json b/resources/profiles/BBL.json index b5e4fc814d..d3528b1ff3 100644 --- a/resources/profiles/BBL.json +++ b/resources/profiles/BBL.json @@ -1,7 +1,7 @@ { "name": "Bambulab", "url": "http://www.bambulab.com/Parameters/vendor/BBL.json", - "version": "01.06.00.11", + "version": "01.06.00.12", "force_update": "0", "description": "the initial version of BBL configurations", "machine_model_list": [ diff --git a/resources/profiles/BBL/process/fdm_process_bbl_common.json b/resources/profiles/BBL/process/fdm_process_bbl_common.json index 1224211594..19efb0b81c 100644 --- a/resources/profiles/BBL/process/fdm_process_bbl_common.json +++ b/resources/profiles/BBL/process/fdm_process_bbl_common.json @@ -56,7 +56,7 @@ "only_one_wall_top": "1", "inner_wall_line_width": "0.45", "inner_wall_speed": "150", - "wall_loops": "2", + "wall_loops": "3", "print_settings_id": "", "raft_layers": "0", "seam_position": "aligned", diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 71c518e0ea..20d85082e5 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -292,7 +292,8 @@ static std::vector get_path_of_change_filament(const Print& print) /* Reduce feedrate a bit; travel speed is often too high to move on existing material. Too fast = ripping of existing material; too slow = short wipe path, thus more blob. */ - double wipe_speed = gcodegen.writer().config.travel_speed.value * 0.8; + //softFever + double wipe_speed = gcodegen.writer().config.travel_speed.value * gcodegen.config().wipe_speed.value / 100; // get the retraction length double length = toolchange @@ -3434,7 +3435,7 @@ std::string GCode::extrude_loop(ExtrusionLoop loop, std::string description, dou // if polyline was shorter than the clipping distance we'd get a null polyline, so // we discard it in that case double clip_length = m_enable_loop_clipping ? - scale_(EXTRUDER_CONFIG(nozzle_diameter)) * LOOP_CLIPPING_LENGTH_OVER_NOZZLE_DIAMETER : + scale_(EXTRUDER_CONFIG(nozzle_diameter)) * m_config.seam_gap.value : 0; // get paths diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index 4f3ab84c10..0c3ca21d04 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -758,6 +758,7 @@ static std::vector s_Preset_print_options { "timelapse_type", "internal_bridge_support_thickness", "wall_generator", "wall_transition_length", "wall_transition_filter_deviation", "wall_transition_angle", "wall_distribution_count", "min_feature_size", "min_bead_width", "post_process", + "seam_gap", "wipe_speed", // calib "print_flow_ratio" }; diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 4319ac6f1c..fb25b3fed0 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -144,7 +144,10 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n "chamber_temperature", "nozzle_hrc", "required_nozzle_HRC", - "upward_compatible_machine" + "upward_compatible_machine", + //SoftFever + "seam_gap", + "wipe_speed" }; static std::unordered_set steps_ignore; diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 33bf1d5358..c2b7ed552d 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -2333,6 +2333,22 @@ void PrintConfigDef::init_fff_params() def->mode = comSimple; def->set_default_value(new ConfigOptionEnum(spAligned)); + def = this->add("seam_gap", coFloat); + def->label = L("Seam gap"); + def->tooltip = L("In order to reduce the visibility of the seam in a closed loop extrusion, the loop is interrupted and shortened by a specified amount.\n" "This amount can be specified in millimeters or as a percentage of the current extruder diameter. The default value for this parameter is 0.15"); + def->sidetext = L("mm"); + def->min = 0; + def->mode = comDevelop; + def->set_default_value(new ConfigOptionFloat(0.15)); + + def = this->add("wipe_speed", coPercent); + def->label = L("Wipe speed"); + def->tooltip = L("The wipe speed is determined by the speed setting specified in this configuration." "If the value is expressed as a percentage (e.g. 80%), it will be calculated based on the travel speed setting above." "The default value for this parameter is 80%"); + def->sidetext = L("%"); + def->min = 0.01; + def->mode = comDevelop; + def->set_default_value(new ConfigOptionPercent(80)); + def = this->add("skirt_distance", coFloat); def->label = L("Skirt distance"); def->tooltip = L("Distance from skirt to brim or object"); @@ -3161,7 +3177,7 @@ void PrintConfigDef::init_fff_params() def->enum_labels.push_back(L("Classic")); def->enum_labels.push_back(L("Arachne")); def->mode = comAdvanced; - def->set_default_value(new ConfigOptionEnum(PerimeterGeneratorType::Classic)); + def->set_default_value(new ConfigOptionEnum(PerimeterGeneratorType::Arachne)); def = this->add("wall_transition_length", coPercent); def->label = L("Wall transition length"); diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index 266d24d28c..557aff9223 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -700,6 +700,9 @@ PRINT_CONFIG_CLASS_DEFINE( ((ConfigOptionPercent, min_bead_width)) ((ConfigOptionBool, only_one_wall_top)) ((ConfigOptionBool, only_one_wall_first_layer)) + // SoftFever + ((ConfigOptionFloat, seam_gap)) + ((ConfigOptionPercent, wipe_speed)) ) // This object is mapped to Perl as Slic3r::Config::PrintRegion. diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index 88a4c1bb28..691c9af102 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -892,6 +892,8 @@ bool PrintObject::invalidate_state_by_config_options( steps.emplace_back(posSlice); } else if ( opt_key == "seam_position" + || opt_key == "seam_gap" + || opt_key == "wipe_speed" || opt_key == "support_speed" || opt_key == "support_interface_speed" || opt_key == "overhang_1_4_speed" diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index 0e1098c1d5..33eff9f671 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -533,7 +533,7 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co { bool have_perimeters = config->opt_int("wall_loops") > 0; for (auto el : { "ensure_vertical_shell_thickness", "detect_thin_wall", "detect_overhang_wall", - "seam_position", "wall_infill_order", "outer_wall_line_width", + "seam_position","seam_gap","wipe_speed", "wall_infill_order", "outer_wall_line_width", "inner_wall_speed", "outer_wall_speed" }) toggle_field(el, have_perimeters); diff --git a/src/slic3r/GUI/GUI_Factories.cpp b/src/slic3r/GUI/GUI_Factories.cpp index 41d6923e4d..f679fa6564 100644 --- a/src/slic3r/GUI/GUI_Factories.cpp +++ b/src/slic3r/GUI/GUI_Factories.cpp @@ -74,9 +74,9 @@ std::map> SettingsFactory::OBJECT_C { { L("Quality"), {{"layer_height", "",1}, //{"initial_layer_print_height", "",2}, - {"seam_position", "",2}, - {"slice_closing_radius", "",3}, {"resolution", "",4}, - {"xy_hole_compensation", "",5}, {"xy_contour_compensation", "",6}, {"elefant_foot_compensation", "",7} + {"seam_position", "",2}, {"seam_gap", "",3}, {"wipe_speed", "",4}, + {"slice_closing_radius", "",5}, {"resolution", "",6}, + {"xy_hole_compensation", "",7}, {"xy_contour_compensation", "",8}, {"elefant_foot_compensation", "",9} }}, { L("Support"), {{"brim_type", "",1},{"brim_width", "",2},{"brim_object_gap", "",3}, {"enable_support", "",4},{"support_type", "",5},{"support_threshold_angle", "",6},{"support_on_build_plate_only", "",7}, diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index be9f3b0ae1..0121cecde0 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1848,6 +1848,8 @@ void TabPrint::build() optgroup = page->new_optgroup(L("Seam"), L"param_seam"); optgroup->append_single_option_line("seam_position", "Seam"); + optgroup->append_single_option_line("seam_gap", "Seam"); + optgroup->append_single_option_line("wipe_speed", "Seam"); optgroup = page->new_optgroup(L("Precision"), L"param_precision"); optgroup->append_single_option_line("slice_closing_radius");