diff --git a/resources/profiles/FLSun.json b/resources/profiles/FLSun.json index 0b8d9b197e..192ca29f3d 100644 --- a/resources/profiles/FLSun.json +++ b/resources/profiles/FLSun.json @@ -1,6 +1,6 @@ { "name": "FLSun", - "version": "01.06.00.00", + "version": "01.06.00.02", "force_update": "0", "description": "FLSun configurations", "machine_model_list": [ diff --git a/resources/profiles/FLSun/V400.svg b/resources/profiles/FLSun/V400.svg index 160ab7de42..9e60c1fbca 100644 --- a/resources/profiles/FLSun/V400.svg +++ b/resources/profiles/FLSun/V400.svg @@ -52,7 +52,7 @@ id="g18" transform="matrix(0.9,0,0,0.9,133.51373,249.58775)"> diff --git a/resources/profiles/FLSun/V400_bed.stl b/resources/profiles/FLSun/V400_bed.stl new file mode 100644 index 0000000000..a97ab48233 Binary files /dev/null and b/resources/profiles/FLSun/V400_bed.stl differ diff --git a/resources/profiles/FLSun/machine/FLSun V400.json b/resources/profiles/FLSun/machine/FLSun V400.json index 6e28f9f6a6..9585a230c5 100644 --- a/resources/profiles/FLSun/machine/FLSun V400.json +++ b/resources/profiles/FLSun/machine/FLSun V400.json @@ -5,7 +5,7 @@ "nozzle_diameter": "0.4", "machine_tech": "FFF", "family": "FLSun", - "bed_model": "", + "bed_model": "V400_bed.stl", "bed_texture": "V400.svg", "hotend_model": "", "default_materials": "FLSun Generic ABS;FLSun Generic PLA;FLSun Generic PLA-CF;FLSun Generic PETG;FLSun Generic TPU;FLSun Generic ASA;FLSun Generic PC;FLSun Generic PVA;FLSun Generic PA;FLSun Generic PA-CF" diff --git a/resources/profiles/FLSun/machine/fdm_machine_common.json b/resources/profiles/FLSun/machine/fdm_machine_common.json index 89cad31412..9a22e4612a 100644 --- a/resources/profiles/FLSun/machine/fdm_machine_common.json +++ b/resources/profiles/FLSun/machine/fdm_machine_common.json @@ -17,56 +17,56 @@ "5000" ], "machine_max_acceleration_extruding": [ - "2000", - "2000" + "20000", + "20000" ], "machine_max_acceleration_retracting": [ "5000", "5000" ], "machine_max_acceleration_travel": [ - "3000", - "3000" + "20000", + "20000" ], "machine_max_acceleration_x": [ - "2000", - "2000" + "20000", + "20000" ], "machine_max_acceleration_y": [ - "2000", - "2000" + "20000", + "20000" ], "machine_max_acceleration_z": [ - "300", - "200" + "500", + "500" ], "machine_max_speed_e": [ - "25", - "25" + "30", + "30" ], "machine_max_speed_x": [ - "300", - "200" + "1000", + "1000" ], "machine_max_speed_y": [ - "300", - "200" + "1000", + "1000" ], "machine_max_speed_z": [ - "12", - "12" + "20", + "20" ], "machine_max_jerk_e": [ "2.5", "2.5" ], "machine_max_jerk_x": [ - "9", - "9" + "12", + "12" ], "machine_max_jerk_y": [ - "9", - "9" + "12", + "12" ], "machine_max_jerk_z": [ "0.2", diff --git a/resources/profiles/FLSun/process/0.20mm Standard @FLSun.json b/resources/profiles/FLSun/process/0.20mm Standard @FLSun.json index 4e47481b5c..e0d44d3002 100644 --- a/resources/profiles/FLSun/process/0.20mm Standard @FLSun.json +++ b/resources/profiles/FLSun/process/0.20mm Standard @FLSun.json @@ -5,15 +5,24 @@ "from": "system", "instantiation": "true", "inherits": "fdm_process_common", - "initial_layer_speed": "40", - "initial_layer_infill_speed": "50", - "outer_wall_speed": "35", - "inner_wall_speed": "60", - "sparse_infill_speed": "200", + "outer_wall_speed": "120", + "inner_wall_speed": "200", + "sparse_infill_speed": "250", "internal_solid_infill_speed": "200", - "top_surface_speed": "50", - "gap_infill_speed": "40", - "travel_speed": "180", + "default_acceleration": "7000", + "default_jerk": "9", + "gap_infill_speed": "200", + "initial_layer_acceleration": "1000", + "initial_layer_infill_speed": "100", + "initial_layer_speed": "50", + "inner_wall_acceleration": "7000", + "is_custom_defined": "0", + "outer_wall_acceleration": "4000", + "overhang_1_4_speed": "80", + "top_surface_acceleration": "3000", + "top_surface_speed": "200", + "travel_acceleration": "7000", + "travel_speed": "400", "compatible_printers": [ "FLSun V400 0.4 nozzle" ] diff --git a/resources/profiles/Vzbot.json b/resources/profiles/Vzbot.json index 06a8f3ba03..8817a26c78 100644 --- a/resources/profiles/Vzbot.json +++ b/resources/profiles/Vzbot.json @@ -1,6 +1,6 @@ { "name": "Vzbot", - "version": "01.00.00.00", + "version": "01.06.00.00", "force_update": "0", "description": "Vzbot configurations", "machine_model_list": [ diff --git a/resources/profiles/Vzbot/process/0.24mm Draft @Vzbot_0.5_nozzle.json b/resources/profiles/Vzbot/process/0.24mm Draft @Vzbot_0.5_nozzle.json index 6b9e6101a4..d8d55db48a 100644 --- a/resources/profiles/Vzbot/process/0.24mm Draft @Vzbot_0.5_nozzle.json +++ b/resources/profiles/Vzbot/process/0.24mm Draft @Vzbot_0.5_nozzle.json @@ -6,7 +6,6 @@ "instantiation": "true", "inherits": "fdm_process_Vzbot_common_0.5_nozzle", "layer_height": "0.24", - "top_surface_line_width": "0.45", "bottom_shell_layers": "3", "top_shell_layers": "4" } diff --git a/resources/profiles/Vzbot/process/0.24mm Draft @Vzbot_0.6_nozzle.json b/resources/profiles/Vzbot/process/0.24mm Draft @Vzbot_0.6_nozzle.json index 6fa216ffd9..f46ec58ef8 100644 --- a/resources/profiles/Vzbot/process/0.24mm Draft @Vzbot_0.6_nozzle.json +++ b/resources/profiles/Vzbot/process/0.24mm Draft @Vzbot_0.6_nozzle.json @@ -6,7 +6,6 @@ "instantiation": "true", "inherits": "fdm_process_Vzbot_common_0.6_nozzle", "layer_height": "0.24", - "top_surface_line_width": "0.45", "bottom_shell_layers": "3", "top_shell_layers": "4" } diff --git a/resources/profiles/Vzbot/process/0.28mm Extra Draft @Vzbot_0.5_nozzle.json b/resources/profiles/Vzbot/process/0.28mm Extra Draft @Vzbot_0.5_nozzle.json index a3427dd2a4..275817d2ed 100644 --- a/resources/profiles/Vzbot/process/0.28mm Extra Draft @Vzbot_0.5_nozzle.json +++ b/resources/profiles/Vzbot/process/0.28mm Extra Draft @Vzbot_0.5_nozzle.json @@ -6,7 +6,7 @@ "instantiation": "true", "inherits": "fdm_process_Vzbot_common", "layer_height": "0.28", - "top_surface_line_width": "0.45", + "top_surface_line_width": "0.52", "bottom_shell_layers": "3", "top_shell_layers": "4" } diff --git a/resources/profiles/Vzbot/process/0.28mm Extra Draft @Vzbot_0.6_nozzle.json b/resources/profiles/Vzbot/process/0.28mm Extra Draft @Vzbot_0.6_nozzle.json index 882f5f968b..d527409a72 100644 --- a/resources/profiles/Vzbot/process/0.28mm Extra Draft @Vzbot_0.6_nozzle.json +++ b/resources/profiles/Vzbot/process/0.28mm Extra Draft @Vzbot_0.6_nozzle.json @@ -6,7 +6,6 @@ "instantiation": "true", "inherits": "fdm_process_Vzbot_common", "layer_height": "0.28", - "top_surface_line_width": "0.45", "bottom_shell_layers": "3", "top_shell_layers": "4" } diff --git a/resources/profiles/Vzbot/process/fdm_process_Vzbot_common_0.5_nozzle.json b/resources/profiles/Vzbot/process/fdm_process_Vzbot_common_0.5_nozzle.json index 7e20e8edea..6ae343d88e 100644 --- a/resources/profiles/Vzbot/process/fdm_process_Vzbot_common_0.5_nozzle.json +++ b/resources/profiles/Vzbot/process/fdm_process_Vzbot_common_0.5_nozzle.json @@ -85,7 +85,7 @@ "tree_support_wall_count": "0", "detect_thin_wall": "0", "top_surface_pattern": "monotonic", - "top_surface_line_width": "0.55", + "top_surface_line_width": "0.52", "top_shell_layers": "3", "top_shell_thickness": "0.8", "initial_layer_speed": "120", diff --git a/resources/profiles/Vzbot/process/fdm_process_common_0.5_nozzle.json b/resources/profiles/Vzbot/process/fdm_process_common_0.5_nozzle.json index fb69e3a50b..7d08c8a6aa 100644 --- a/resources/profiles/Vzbot/process/fdm_process_common_0.5_nozzle.json +++ b/resources/profiles/Vzbot/process/fdm_process_common_0.5_nozzle.json @@ -61,7 +61,7 @@ "support_threshold_angle": "40", "support_object_xy_distance": "0.5", "detect_thin_wall": "0", - "top_surface_line_width": "0.55", + "top_surface_line_width": "0.52", "top_surface_speed": "30", "travel_speed": "400", "enable_prime_tower": "0", diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 7c31ed482d..ab147156f4 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -2812,15 +2812,12 @@ GCode::LayerResult GCode::process_layer( //BBS if (first_layer) { - //BBS: set first layer global acceleration if (m_config.default_acceleration.value > 0 && m_config.initial_layer_acceleration.value > 0) { - double acceleration = m_config.initial_layer_acceleration.value; - gcode += m_writer.set_acceleration((unsigned int)floor(acceleration + 0.5)); + gcode += m_writer.set_acceleration((unsigned int)floor(m_config.initial_layer_acceleration.value + 0.5)); } if (m_config.default_jerk.value > 0 && m_config.initial_layer_jerk.value > 0) { - double jerk = m_config.initial_layer_jerk.value; - gcode += m_writer.set_jerk_xy(jerk); + gcode += m_writer.set_jerk_xy(m_config.initial_layer_jerk.value); } } @@ -2841,16 +2838,14 @@ GCode::LayerResult GCode::process_layer( gcode += this->unretract(); } } - //BBS: reset acceleration at sencond layer - if (m_config.default_acceleration.value > 0 && m_config.initial_layer_acceleration.value > 0) { - double acceleration = m_config.default_acceleration.value; - gcode += m_writer.set_acceleration((unsigned int)floor(acceleration + 0.5)); - } + // BBS: reset acceleration at sencond layer + if (m_config.default_acceleration.value > 0 && m_config.initial_layer_acceleration.value > 0) { + gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5)); + } - if (m_config.default_jerk.value > 0 && m_config.initial_layer_jerk.value > 0) { - double jerk = m_config.default_jerk.value; - gcode += m_writer.set_jerk_xy(jerk); - } + if (m_config.default_jerk.value > 0 && m_config.initial_layer_jerk.value > 0) { + gcode += m_writer.set_jerk_xy(m_config.default_jerk.value); + } // Transition from 1st to 2nd layer. Adjust nozzle temperatures as prescribed by the nozzle dependent // nozzle_temperature_initial_layer vs. temperature settings. @@ -3605,7 +3600,8 @@ std::string GCode::extrude_multi_path(ExtrusionMultiPath multipath, std::string //BBS: don't reset acceleration when printing first layer. During first layer, acceleration is always same value. if (!this->on_first_layer()) { // reset acceleration - gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5)); + if (m_config.default_acceleration.value > 0) + gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5)); if(m_config.default_jerk.value > 0) gcode += m_writer.set_jerk_xy(m_config.default_jerk.value); } @@ -3636,7 +3632,8 @@ std::string GCode::extrude_path(ExtrusionPath path, std::string description, dou //BBS: don't reset acceleration when printing first layer. During first layer, acceleration is always same value. if (!this->on_first_layer()){ // reset acceleration - gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5)); + if (m_config.default_acceleration.value > 0) + gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5)); if(m_config.default_jerk.value > 0) gcode += m_writer.set_jerk_xy(m_config.default_jerk.value); @@ -4205,28 +4202,19 @@ std::string GCode::travel_to(const Point &point, ExtrusionRole role, std::string // SoftFever if (this->on_first_layer()) { - if (m_config.default_acceleration.value > 0) { - auto accel = (unsigned int)floor(m_config.initial_layer_acceleration.value + 0.5); - if (accel > 0) - gcode += m_writer.set_acceleration(accel); + if (m_config.default_acceleration.value > 0 && m_config.initial_layer_acceleration.value > 0) { + gcode += m_writer.set_acceleration((unsigned int)floor(m_config.initial_layer_acceleration.value + 0.5)); } - if (m_config.default_jerk.value > 0) { - auto jerk = m_config.initial_layer_jerk.value; - if (jerk > 0) - gcode += m_writer.set_jerk_xy(jerk); + if (m_config.default_jerk.value > 0 && m_config.initial_layer_jerk.value > 0) { + gcode += m_writer.set_jerk_xy(m_config.initial_layer_jerk.value); } - } - else - { - if(m_config.default_jerk.value > 0) - { - auto jerk = m_config.travel_jerk.value; - auto accel = (unsigned int)floor(m_config.travel_acceleration.value + 0.5); - if(jerk > 0) - gcode += m_writer.set_jerk_xy(jerk); - - if(accel > 0) - gcode += m_writer.set_acceleration(accel); + } else { + if (m_config.default_acceleration.value > 0 && m_config.travel_acceleration.value > 0) { + gcode += m_writer.set_acceleration((unsigned int)floor(m_config.travel_acceleration.value + 0.5)); + } + + if (m_config.default_jerk.value > 0 && m_config.travel_jerk.value > 0) { + gcode += m_writer.set_jerk_xy(m_config.travel_jerk.value); } } // if a retraction would be needed, try to use reduce_crossing_wall to plan a diff --git a/src/libslic3r/calib.cpp b/src/libslic3r/calib.cpp index 4f3d090629..b6a95ef4fc 100644 --- a/src/libslic3r/calib.cpp +++ b/src/libslic3r/calib.cpp @@ -9,16 +9,30 @@ namespace Slic3r { calib_pressure_advance::calib_pressure_advance(GCode* gcodegen) :mp_gcodegen(gcodegen), m_length_short(20.0), m_length_long(40.0), m_space_y(3.5), m_line_width(0.6), m_draw_numbers(true) {} - std::string calib_pressure_advance::generate_test(double start_pa/*= 0*/, double step_pa /*= 0.002*/, int count/*= 10*/) { - auto bed_sizes = mp_gcodegen->config().printable_area.values; - auto w = bed_sizes[2].x() - bed_sizes[0].x(); - auto h = bed_sizes[2].y() - bed_sizes[0].y(); - count = std::min(count, int((h - 10) / m_space_y)); + std::string calib_pressure_advance::generate_test(double start_pa /*= 0*/, double step_pa /*= 0.002*/, + int count /*= 10*/) { + BoundingBoxf bed_ext = get_extents(mp_gcodegen->config().printable_area.values); + bool is_delta = false; + if (mp_gcodegen->config().printable_area.values.size() > 4) { + is_delta = true; + bed_ext.scale(1.0f / 1.41421f); + } - auto startx = (w - 100) / 2; - auto starty = (h - count * m_space_y) / 2; - m_length_long = 40 + std::min(w - 120.0, 30.0); - return print_pa_lines(startx, starty, start_pa, step_pa, count); + auto bed_sizes = mp_gcodegen->config().printable_area.values; + const auto &w = bed_ext.size().x(); + const auto &h = bed_ext.size().y(); + count = std::min(count, int((h - 10) / m_space_y)); + + m_length_long = 40 + std::min(w - 120.0, 0.0); + + auto startx = (w - m_length_short * 2 - m_length_long - 20) / 2; + auto starty = (h - count * m_space_y) / 2; + if (is_delta) { + startx = -startx; + starty = -(count * m_space_y) / 2; + } + + return print_pa_lines(startx, starty, start_pa, step_pa, count); } std::string calib_pressure_advance::move_to(Vec2d pt) { @@ -45,7 +59,7 @@ namespace Slic3r { double y_pos = start_y; // prime line - auto prime_x = std::max(start_x - 5, 0.5); + auto prime_x = start_x - 2; gcode << move_to(Vec2d(prime_x, y_pos + (num - 4) * m_space_y)); gcode << writer.set_speed(slow); gcode << writer.extrude_to_xy(Vec2d(prime_x, y_pos + 3 * m_space_y), e_calib * m_space_y * num * 1.1); diff --git a/src/slic3r/GUI/PartPlate.cpp b/src/slic3r/GUI/PartPlate.cpp index d7a4bfeda5..102700e162 100644 --- a/src/slic3r/GUI/PartPlate.cpp +++ b/src/slic3r/GUI/PartPlate.cpp @@ -42,6 +42,7 @@ using boost::optional; namespace fs = boost::filesystem; static const float GROUND_Z = -0.03f; +static const float GROUND_Z_GRIDLINE = -0.26f; static const float GRABBER_X_FACTOR = 0.20f; static const float GRABBER_Y_FACTOR = 0.03f; static const float GRABBER_Z_VALUE = 0.5f; @@ -376,10 +377,10 @@ void PartPlate::calc_gridlines(const ExPolygon& poly, const BoundingBox& pp_bbox Lines contour_lines = to_lines(poly); std::copy(contour_lines.begin(), contour_lines.end(), std::back_inserter(gridlines)); - if (!m_gridlines.set_from_lines(gridlines, GROUND_Z)) + if (!m_gridlines.set_from_lines(gridlines, GROUND_Z_GRIDLINE)) BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << "Unable to create bed grid lines\n"; - if (!m_gridlines_bolder.set_from_lines(gridlines_bolder, GROUND_Z)) + if (!m_gridlines_bolder.set_from_lines(gridlines_bolder, GROUND_Z_GRIDLINE)) BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << "Unable to create bed grid lines\n"; }