Кремень КД Реклама
Кремень КМ Реклама

Помогите разобраться с Autoleveling в Marlin

RomeoVar
Идет загрузка
Загрузка
29.12.2024
131
18
Вопросы и ответы
Статья относится к принтерам:
Wanhao Duplicator 9/400 Mk2

Добрый день.

Самостоятельно не смог разобраться с настройкой autoleveling 

Вожусь с принтером Wanhao D9 MK2 c альтернативной прошивкой от Waggster но в принципе это неважно.

НА данной прошивке принтер промеряет перепады высот на столе (по 25 точкам) и вроде бы их сохраняет и при печати я вижу что винты по оси Z подкручиваются, значит он адаптирует задание печати под фактическую высоту.

Но также я вижу что первый слой в разных местах стола имеет разную толщину, и в одном месте филамент может просто оказаться "втертым" в стол, а в других местах даже не доставать (нечасто, но бывает). При этом перепад стола между крайними точками - +/- 0,1-0,2  миллиметра, а между соседними точками и того меньше.

При этом в проекте Bed Leveling  определен как AUTO_BED_LEVELING_BILINEAR

 Вы задаете прямоугольник и плотность точек выборки. В результате получается сетка, которая лучше всего подходит для больших или неровных слоев.

Вопрос: как я задаю прямоугольник? С плотностью точек выборки как-то понятно.

И после этого всего у меня создается впечатление что он держит уровень стола не между соседними, а между крайними точками стола. Или я не прав? 

При этом в gcode файле присутствуют строки G28 ; home all without mesh bed level

G29 ; mesh bed leveling 

И в конфигурационном файле проекта Marlin включены

RESTORE_LEVELING_AFTER_G28

#if ANY(MESH_BED_LEVELING, AUTO_BED_LEVELING_BILINEAR, AUTO_BED_LEVELING_UBL)

  // Gradually reduce leveling correction until a set height is reached,

  // at which point movement will be level to the machine's XY plane.

  // The height can be set with M420 Z

    #define ENABLE_LEVELING_FADE_HEIGHT

  // For Cartesian machines, instead of dividing moves on mesh boundaries,

  // split up moves into short segments like a Delta. This follows the

  // contours of the bed more closely than edge-to-edge straight moves.

    #define SEGMENT_LEVELED_MOVES

    #define LEVELED_SEGMENT_LENGTH 20.0 // (mm) Length of all segments (except the last one)

  /**

   * Enable the G26 Mesh Validation Pattern tool.

   */

  //#define G26_MESH_VALIDATION

  #if ENABLED(G26_MESH_VALIDATION)

#define G26_MESH_VALIDATION // Enable G26 mesh validation

#endif

  #if ENABLED(G26_MESH_VALIDATION)

    #define MESH_TEST_NOZZLE_SIZE 0.4 // (mm) Diameter of primary nozzle.

    #define MESH_TEST_LAYER_HEIGHT 0.2 // (mm) Default layer height for the G26 Mesh Validation Tool.

    #define MESH_TEST_HOTEND_TEMP 205 // (°C) Default nozzle temperature for the G26 Mesh Validation Tool.

    #define MESH_TEST_BED_TEMP 60 // (°C) Default bed temperature for the G26 Mesh Validation Tool.

    #define G26_XY_FEEDRATE 20 // (mm/s) Feedrate for XY Moves for the G26 Mesh Validation Tool.

  #endif

#endif

#if EITHER(AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR)

  // Set the number of grid points per dimension.

  #define GRID_MAX_POINTS_X 5

  #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X

  // Probe along the Y axis, advancing X after each column

  //#define PROBE_Y_FIRST

  #if ENABLED(AUTO_BED_LEVELING_BILINEAR)

    // Beyond the probed grid, continue the implied tilt?

    // Default is to maintain the height of the nearest edge.

    //#define EXTRAPOLATE_BEYOND_GRID

    //

    // Experimental Subdivision of the grid by Catmull-Rom method.

    // Synthesizes intermediate points to produce a more detailed mesh.

    //

    //#define ABL_BILINEAR_SUBDIVISION

    #if ENABLED(ABL_BILINEAR_SUBDIVISION)

      // Number of subdivisions between probe points

      #define BILINEAR_SUBDIVISIONS 3

    #endif

  #endif

То есть вроде как между соседними точками должен корректировать высоту.

Но у меня все как-то не совсем так.

Отсюда вопрос - как проверить что работает autoleveling?

могу сбросить конфигурационные файлы проекта, а могу и весь проект - если нужно. Но я его с этого сайта и скачал.

Но здесь https://marlinfw.org/docs/gcode/G029-abl-linear.html

Еще описана команда M420 S1 которая типа "активирует" последнюю измеренную матрицу высот. но в коде я ее не вижу. Может ее нужно добавлять в код вручную чтобы активировать эти высоты?

Буду признателен за помощь.

Ответы на вопросы