Автоматическое выравнивание стола Anet A8 — автоматическое центрирование не центрируется с новой конфигурацией Marlin 1.1.9
Недавно я добавил датчик к своему Anet A8 для автоматического выравнивания стола, при необходимости были добавлены расчеты на основе положения датчика на хотенде. Я использую Marlin 1.1.9.
Когда я захожу в «Подготовка» в настройках принтера, чтобы выбрать автоматический возврат в исходное положение, он не центрируется на столе, а кажется, перемещается сзади справа. Я полагаю, это должно быть в центре стола? Не могу найти где это изменить в конфиге. Обратите внимание, что на ЖК-экране отображается X:153, Y:114. Конфигурация ниже.
//============================= Настройки конечной остановки ========== =================
// @section возвращение домой
// Укажите здесь все разъемы концевых упоров, которые подключаются к любому концевому упору или датчику.
// Почти все принтеры будут использовать по одному на ось. Зонды будут использовать один или несколько
// дополнительные соединители. Оставьте неопределенным все, что используется для целей, не связанных с концевым остановом и тестированием.
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
//#определить USE_XMAX_PLUG
//#определить USE_YMAX_PLUG
//#определить USE_ZMAX_PLUG
// Включаем подтягивание для всех конечных точек, чтобы предотвратить плавающее состояние
#define ENDSTOPPULLUPS
#if DISABLED(ENDSTOPPULLUPS)
// Отключаем ENDSTOPPULLUPS, чтобы устанавливать подтягивания индивидуально
//#define ENDSTOPPULLUP_XMAX
//#define ENDSTOPPULLUP_YMAX
//#define ENDSTOPPULLUP_ZMAX
//#define ENDSTOPPULLUP_XMIN
//#define ENDSTOPPULLUP_YMIN
//#define ENDSTOPPULLUP_ZMIN
//#define ENDSTOPPULLUP_ZMIN_PROBE
#endif
// Механический концевой упор с COM на землю и NC на сигнал использует "false" здесь (самая распространенная настройка).
#define X_MIN_ENDSTOP_INVERTING true // установите значение true, чтобы инвертировать логику конечной остановки.
#define Y_MIN_ENDSTOP_INVERTING true // установите значение true, чтобы инвертировать логику конечной остановки.
#define Z_MIN_ENDSTOP_INVERTING true // установите значение true, чтобы инвертировать логику конечной остановки.
#define X_MAX_ENDSTOP_INVERTING false // установите значение true, чтобы инвертировать логику конечной остановки.
#define Y_MAX_ENDSTOP_INVERTING false // установите значение true, чтобы инвертировать логику конечной остановки.
#define Z_MAX_ENDSTOP_INVERTING false // установите значение true, чтобы инвертировать логику конечной остановки.
#define Z_MIN_PROBE_ENDSTOP_INVERTING true // установите значение true, чтобы инвертировать логику проверки.
// Включите эту функцию, если все включенные контакты концевого упора поддерживают прерывание.
// Это избавит от необходимости опрашивать контакты прерываний, что сэкономит много циклов процессора.
//#define ENDSTOP_INTERRUPTS_FEATURE
/**
* Концевой шумовой фильтр
*
* Включите эту опцию, если концевые ограничители срабатывают ошибочно из-за шума.
* ПРИМЕЧАНИЕ. Включение этой функции означает добавление погрешности +/- 0,2 мм, поэтому возврат в исходное положение
* на каждом G28 окажется в несколько разной позиции. Это также будет
* снижают точность некоторых настольных датчиков.
* Для механических переключателей лучшим способом снижения шума является установка
* Керамический конденсатор емкостью 100 нанофарад, подключенный параллельно переключателю, что делает его
* по существу помехозащищенный без ущерба для точности.
* Эта опция также увеличивает нагрузку на MCU, когда включены концевые упоры или датчик.
* Так что это не рекомендуется. ИСПОЛЬЗУЙТЕ НА СВОЙ РИСК.
* (Эта функция не требуется для обычных микропереключателей, установленных на печатных платах.
* на основе конструкции Makerbot, поскольку они уже включают конденсатор емкостью 100 нФ.)
*/
//#определить ENDSTOP_NOISE_FILTER
//============================================== ============================
//============================= Настройки движения =============== ============
//============================================== ============================
// движение @section
/**
* Настройки по умолчанию
*
* Эти настройки можно сбросить с помощью M502.
*
* Обратите внимание, что если EEPROM включено, сохраненные значения будут иметь приоритет над ними.
*/
/**
* При использовании этой опции каждый шаговый двигатель E может иметь свои собственные коэффициенты для
* следующие настройки движения. Если дано меньше факторов, чем
* общее количество экструдеров, к остальным относится последнее значение.
*/
//#define DISTINCT_E_FACTORS
/**
* Шаги по оси по умолчанию на единицу (шаги/мм)
* Переопределить с помощью M92
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/
#define DEFAULT_AXIS_STEPS_PER_UNIT { 100, 100, 400, 100 }
/**
* Максимальная скорость подачи по умолчанию (мм/с)
* Переопределение с помощью M203
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/
#define DEFAULT_MAX_FEEDRATE { 400, 400, 8, 50 }
/**
* Default Max Acceleration (change/s) change = mm/s
* (Maximum start speed for accelerated moves)
* Override with M201
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/
#define DEFAULT_MAX_ACCELERATION { 2000, 2000, 100, 10000 }
/**
* Default Acceleration (change/s) change = mm/s
* Override with M204
*
* M204 P Acceleration
* M204 R Retract Acceleration
* M204 T Travel Acceleration
*/
#define DEFAULT_ACCELERATION 400 // ускорение X, Y, Z и E для печати движений
#define DEFAULT_RETRACT_ACCELERATION 1000 // ускорение E для втягивания
#define DEFAULT_TRAVEL_ACCELERATION 1000 // ускорение X, Y, Z для перемещений (непечатаемых)
/**
* Default Jerk (mm/s)
* Override with M205 X Y Z E
*
* "Jerk" specifies the minimum speed change that requires acceleration.
* When changing speed and direction, if the difference is less than the
* value set here, it may happen instantaneously.
*/
#define DEFAULT_XJERK 10.0
#define DEFAULT_YJERK 10.0
#define DEFAULT_ZJERK 0.3
#define DEFAULT_EJERK 5.0
/**
* S-Curve Acceleration
*
* This option eliminates vibration during printing by fitting a Bézier
* curve to move acceleration, producing much smoother direction changes.
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained.
*/
//#define S_CURVE_ACCELERATION
//============================================== ==========================
//============================ Опции Z-зонда =============== =============
//============================================== ==========================
// @section зонды
//
// См. http://marlinfw.org/docs/configuration/probes.html.
//
/**
* Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
*
* Enable this option for a probe connected to the Z Min endstop pin.
*/
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
/**
* Z_MIN_PROBE_ENDSTOP
*
* Enable this option for a probe connected to any pin except Z-Min.
* (By default Marlin assumes the Z-Max endstop pin.)
* To use a custom Z Probe pin, set Z_MIN_PROBE_PIN below.
*
* - The simplest option is to use a free endstop connector.
* - Use 5V for powered (usually inductive) sensors.
*
* - RAMPS 1.3/1.4 boards may use the 5V, GND, and Aux4->D32 pin:
* - For simple switches connect...
* - normally-closed switches to GND and D32.
* - normally-open switches to 5V and D32.
*
* WARNING: Setting the wrong pin may have unexpected and potentially
* disastrous consequences. Use with caution and do your homework.
*
*/
//#define Z_MIN_PROBE_ENDSTOP
/**
* Probe Type
*
* Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
* Activate one of these to use Auto Bed Leveling below.
*/
/**
* The "Manual Probe" provides a means to do "Auto" Bed Leveling without a probe.
* Use G29 repeatedly, adjusting the Z height at each point with movement commands
* or (with LCD_BED_LEVELING) the LCD controller.
*/
//#определить PROBE_MANUALLY
//#define MANUAL_PROBE_START_Z 0.2
/**
* A Fix-Mounted Probe either doesn't deploy or needs manual deployment.
* (e.g., an inductive probe or a nozzle-based probe-switch.)
*/
#define FIX_MOUNTED_PROBE
/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
//#define Z_PROBE_SERVO_NR 0 // По умолчанию используется разъем SERVO 0.
//#define Z_SERVO_ANGLES {70,0} // Углы развертывания и складывания Z-сервопривода
/**
* The BLTouch probe uses a Hall effect sensor and emulates a servo.
*/
//#определить БЛТАЧ
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (мс) Включить и увеличить при необходимости
#endif
/**
* Enable one or more of the following if probing seems unreliable.
* Heaters and/or fans can be disabled during probing to minimize electrical
* noise. A delay can also be added to allow noise and vibration to settle.
* These options are most useful for the BLTouch probe, but may also improve
* readings with inductive probes and piezo sensors.
*/
//#define PROBING_HEATERS_OFF // Выключаем нагреватели при зондировании
#if ENABLED(PROBING_HEATERS_OFF)
//#define WAIT_FOR_BED_HEATER // Подождите, пока стол снова нагреется между датчиками (для повышения точности)
#endif
//#define PROBING_FANS_OFF // Выключаем вентиляторы при проверке
//#define DELAY_BEFORE_PROBING 200 // (мс) Чтобы предотвратить срабатывание пьезодатчиков вибрациями
// Зонд, который развернут и уложен с помощью штифта соленоида (SOL1_PIN)
//#определить SOLENOID_PROBE
// Зонд, установленный на салазках, подобный тем, что разработал Чарльз Белл.
//#определить Z_PROBE_SLED
//#define SLED_DOCKING_OFFSET 5 // Дополнительное расстояние, которое должна пройти ось X, чтобы поднять сани. 0 должно быть хорошо, но вы можете расширить его, если хотите.
//
// Для Z_PROBE_ALLEN_KEY см. примеры конфигураций Delta.
//
/**
* Z Probe to nozzle (X,Y) offset, relative to (0, 0).
* X and Y offsets must be integers.
*
* In the following example the X and Y offsets are both positive:
* #define X_PROBE_OFFSET_FROM_EXTRUDER 10
* #define Y_PROBE_OFFSET_FROM_EXTRUDER 10
*
* +-- BACK ---+
* | |
* L | (+) P | R <-- probe (20,20)
* E | | I
* F | (-) N (+) | G <-- nozzle (10,10)
* T | | H
* | (-) | T
* | |
* O-- FRONT --+
* (0,0)
*/
#define X_PROBE_OFFSET_FROM_EXTRUDER -43
#define Y_PROBE_OFFSET_FROM_EXTRUDER -4
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0
// Смещение по оси X: -left +right [от сопла]
// Смещение по оси Y: -front +behind [форсунка]
// Смещение по оси Z: -ниже +выше [сопло]
// Определенным типам датчиков необходимо держаться подальше от краев
#define MIN_PROBE_EDGE 10
// Скорость перемещения по осям X и Y (мм/м) между датчиками
#define XY_PROBE_SPEED 6000
// Скорость подачи (мм/м) для первого подхода при двойном измерении (MULTIPLE_PROBING == 2)
#define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z
// Скорость подачи (мм/м) для «точной» обработки; зонд каждой точки
#define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 2)
// Количество зондов, выполняемых в каждой точке.
// Установите значение 2 для быстрого/медленного теста, используя результат второго теста.
// Установите значение 3 или более для медленных проб и усреднения результатов.
#define MULTIPLE_PROBING 3
/**
* Z probes require clearance when deploying, stowing, and moving between
* probe points to avoid hitting the bed and other hardware.
* Servo-mounted probes require extra space for the arm to rotate.
* Inductive probes need space to keep from triggering early.
*
* Use these settings to specify the distance (mm) to raise the probe (or
* lower the bed). The values set here apply over and above any (negative)
* probe Z Offset set with Z_PROBE_OFFSET_FROM_EXTRUDER, M851, or the LCD.
* Only integer values >= 1 are valid here.
*
* Example: `M851 Z-5` with a CLEARANCE of 4 => 9mm from bed to nozzle.
* But: `M851 Z+1` with a CLEARANCE of 2 => 2mm from bed to nozzle.
*/
#define Z_CLEARANCE_DEPLOY_PROBE 10 // Зазор по оси Z для развертывания/укладки
#define Z_CLEARANCE_BETWEEN_PROBES 5 // Зазор Z между точками измерения
#define Z_CLEARANCE_MULTI_PROBE 5 // Зазор Z между несколькими датчиками
//#define Z_AFTER_PROBING 5 // Положение Z после завершения зондирования
#define Z_PROBE_LOW_POINT -2 // Самое дальнее расстояние ниже точки срабатывания, которое нужно пройти, прежде чем остановиться
// Для M851 укажите диапазон регулировки смещения датчика Z
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20
// Включите тест повторяемости M48 для проверки точности датчика
//#define Z_MIN_PROBE_REPEATABILITY_TEST
// Для контактов включения инвертирующего шагового двигателя (активный низкий уровень) используйте 0, для неинвертирующих (активный высокий уровень) используйте 1
// :{ 0:'Низкий', 1:'Высокий' }
#define X_ENABLE_ON 0
#define Y_ENABLE_ON 0
#define Z_ENABLE_ON 0
#define E_ENABLE_ON 0 // Для всех экструдеров
// Немедленно отключает шаговый двигатель оси, когда он не используется.
// ВНИМАНИЕ: при выключении двигателей существует вероятность потери точности позиционирования!
#define DISABLE_X false
#define DISABLE_Y false
#define DISABLE_Z false
// Предупреждаем на дисплее о возможном снижении точности
//#define DISABLE_REDUCED_ACCURACY_WARNING
// @section экструдер
#define DISABLE_E false // Для всех экструдеров
#define DISABLE_INACTIVE_EXTRUDER true // Оставляем включенным только активный экструдер.
// машина @section
// Инвертируем направление шагового двигателя. Замените (или поменяйте местами разъем двигателя), если ось идет не в ту сторону.
#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR true
// @section экструдер
// Для экструдера с прямым приводом v9 установлено значение true, для экструдера с редуктором установлено значение false.
#define INVERT_E0_DIR false
#define INVERT_E1_DIR false
#define INVERT_E2_DIR false
#define INVERT_E3_DIR false
#define INVERT_E4_DIR false
// @section возвращение домой
//#define NO_MOTION_BEFORE_HOMING // Запретить движение до тех пор, пока все оси не будут возвращены в исходное положение
//#define UNKNOWN_Z_NO_RAISE // Не поднимать Z (опускать стол), если Z "неизвестно" Для кроватей, которые падают при выключении Z.
//#define Z_HOMING_HEIGHT 4 // (в мм) Минимальная высота Z до начала отсчета (G28) для зазора Z над столом, зажимами, ...
// На всякий случай убедитесь, что это расстояние превышает Z_MAX_POS.
// Направление конечных точек при возврате в исходное положение; 1=МАКС, -1=МИН
// :[-1,1]
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
// машина @section
// Размер печатной платформы
#define X_BED_SIZE 220
#define Y_BED_SIZE 220
// Пределы перемещения (мм) после возврата в исходное положение, соответствующие конечным положениям.
#define X_MIN_POS -33
#define Y_MIN_POS -10
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 240
/**
* Software Endstops
*
* - Prevent moves outside the set machine bounds.
* - Individual axes can be disabled, if desired.
* - X and Y only apply to Cartesian robots.
* - Use 'M211' to set software endstops on/off or report current state
*/
// Минимальные программные конечные упоры ограничивают движение в пределах минимальных границ координат.
#define MIN_SOFTWARE_ENDSTOPS
#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
#define MIN_SOFTWARE_ENDSTOP_X
#define MIN_SOFTWARE_ENDSTOP_Y
#define MIN_SOFTWARE_ENDSTOP_Z
#endif
// Программные ограничители Max ограничивают движение в пределах максимальных координат.
#define MAX_SOFTWARE_ENDSTOPS
#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
#define MAX_SOFTWARE_ENDSTOP_X
#define MAX_SOFTWARE_ENDSTOP_Y
#define MAX_SOFTWARE_ENDSTOP_Z
#endif
#if ENABLED(MIN_SOFTWARE_ENDSTOPS) || ENABLED(MAX_SOFTWARE_ENDSTOPS)
//#define SOFT_ENDSTOPS_MENU_ITEM // Включение/выключение программной остановки с ЖК-дисплея
#endif
/**
* Filament Runout Sensors
* Mechanical or opto endstops are used to check for the presence of filament.
*
* RAMPS-based boards use SERVO3_PIN for the first runout sensor.
* For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc.
* By default the firmware assumes HIGH=FILAMENT PRESENT.
*/
//#define FILAMENT_RUNOUT_SENSOR
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
#define NUM_RUNOUT_SENSORS 1 // Количество датчиков, до одного на экструдер. Определите FIL_RUNOUT#_PIN для каждого.
#define FIL_RUNOUT_INVERTING false // установите значение true, чтобы инвертировать логику датчика.
#define FIL_RUNOUT_PULLUP // Использовать внутреннее подтягивание для выводов биения нити.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#endif
//============================================== ==========================
//============================== Выравнивание стола ============== ===============
//============================================== ==========================
// Калибровка @section
/**
* Choose one of the options below to enable G29 Bed Leveling. The parameters
* and behavior of G29 will change depending on your selection.
*
* If using a Probe for Z Homing, enable Z_SAFE_HOMING also!
*
* - AUTO_BED_LEVELING_3POINT
* Probe 3 arbitrary points on the bed (that aren't collinear)
* You specify the XY coordinates of all 3 points.
* The result is a single tilted plane. Best for a flat bed.
*
* - AUTO_BED_LEVELING_LINEAR
* Probe several points in a grid.
* You specify the rectangle and the density of sample points.
* The result is a single tilted plane. Best for a flat bed.
*
* - AUTO_BED_LEVELING_BILINEAR
* Probe several points in a grid.
* You specify the rectangle and the density of sample points.
* The result is a mesh, best for large or uneven beds.
*
* - AUTO_BED_LEVELING_UBL (Unified Bed Leveling)
* A comprehensive bed leveling system combining the features and benefits
* of other systems. UBL also includes integrated Mesh Generation, Mesh
* Validation and Mesh Editing systems.
*
* - MESH_BED_LEVELING
* Probe a grid manually
* The result is a mesh, suitable for large or uneven beds. (See BILINEAR.)
* For machines without a probe, Mesh Bed Leveling provides a method to perform
* leveling in steps so you can manually adjust the Z height at each grid-point.
With an LCD controller the process is guided step-by-step.
*/
//#define AUTO_BED_LEVELING_3POINT
//#define AUTO_BED_LEVELING_LINEAR
#define AUTO_BED_LEVELING_BILINEAR
//#define AUTO_BED_LEVELING_UBL
//#define MESH_BED_LEVELING
/**
* Normally G28 leaves leveling disabled on completion. Enable
* this option to have G28 restore the prior leveling state.
*/
//#define RESTORE_LEVELING_AFTER_G28
/**
* Enable detailed logging of G28, G29, M48, etc.
* Turn on with the command 'M111 S32'.
* NOTE: Requires a lot of PROGMEM!
*/
//#define DEBUG_LEVELING_FEATURE
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
// Постепенно уменьшаем коррекцию выравнивания, пока не будет достигнута заданная высота,
// в этот момент движение будет на уровне плоскости XY машины.
// Высоту можно установить с помощью M420 Z<height>
#define ENABLE_LEVELING_FADE_HEIGHT
// Для декартовых машин вместо разделения ходов по границам сетки,
// разбиваем движения на короткие сегменты, например, дельту. Это следует из
// контуры стола более точные, чем прямые движения от края до края.
#define SEGMENT_LEVELED_MOVES
#define LEVELED_SEGMENT_LENGTH 5.0 // (мм) Длина всех сегментов (кроме последнего)
/**
* Enable the G26 Mesh Validation Pattern tool.
*/
//#define G26_MESH_VALIDATION
#if ENABLED(G26_MESH_VALIDATION)
#define MESH_TEST_NOZZLE_SIZE 0.4 // (мм) Диаметр первичного сопла.
#define MESH_TEST_LAYER_HEIGHT 0.2 // (мм) Высота слоя по умолчанию для инструмента проверки сетки G26.
#define MESH_TEST_HOTEND_TEMP 205.0 // (°C) Температура сопла по умолчанию для инструмента проверки сетки G26.
#define MESH_TEST_BED_TEMP 60.0 // (°C) Температура стола по умолчанию для инструмента проверки сетки G26.
#endif
#endif
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
// Установите количество точек сетки для каждого измерения.
#define GRID_MAX_POINTS_X 3
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
// Устанавливаем границы зондирования (куда зонд может дойти).
//#define LEFT_PROBE_BED_POSITION MIN_PROBE_EDGE 10
//#define RIGHT_PROBE_BED_POSITION (X_BED_SIZE - MIN_PROBE_EDGE) 167
//#define FRONT_PROBE_BED_POSITION MIN_PROBE_EDGE 10
//#define BACK_PROBE_BED_POSITION (Y_BED_SIZE - MIN_PROBE_EDGE) 202
#define LEFT_PROBE_BED_POSITION 10
#define RIGHT_PROBE_BED_POSITION 167
#define FRONT_PROBE_BED_POSITION 10
#define BACK_PROBE_BED_POSITION 206
// Зондируем по оси Y, перемещая X после каждого столбца
//#define PROBE_Y_FIRST
#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
// За пределами исследуемой сетки продолжить подразумеваемый наклон?
// По умолчанию сохраняется высота ближайшего края.
//#define EXTRAPOLATE_BEYOND_GRID
//
// Экспериментальное разбиение сетки методом Катмулла-Рома.
// Синтезирует промежуточные точки для создания более детальной сетки.
//
//#define ABL_BILINEAR_SUBDIVISION
#if ENABLED(ABL_BILINEAR_SUBDIVISION)
// Количество подразделений между точками зонда
#define BILINEAR_SUBDIVISIONS 3
#endif
#endif
#elif ENABLED(AUTO_BED_LEVELING_UBL)
//============================================== ==========================
//======================== Единая система выравнивания рабочего стола =================== ========
//============================================== ==========================
//#define MESH_EDIT_GFX_OVERLAY // Отображение наложения графики при редактировании сетки
#define MESH_INSET 1 // Установить границы сетки как вложенную область слоя
#define GRID_MAX_POINTS_X 10 // Не используйте более 15 точек на ось, реализация ограничена.
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
#define UBL_MESH_EDIT_MOVES_Z // Опытные пользователи предпочитают, чтобы сопло не двигалось
#define UBL_SAVE_ACTIVE_ON_M500 // Сохраняем текущую активную сетку в текущем слоте на M500
//#define UBL_Z_RAISE_WHEN_OFF_MESH 2.5 // Когда сопло находится за пределами сетки, используется это значение
// как значение коррекции Z-высоты.
#elif ENABLED(MESH_BED_LEVELING)
//============================================== ==========================
//================================== Сетка ============ ======================
//============================================== ==========================
#define MESH_INSET 10 // Установить границы сетки как вложенную область слоя
#define GRID_MAX_POINTS_X 3 // Не используйте более 7 точек на ось, реализация ограничена.
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
//#define MESH_G28_REST_ORIGIN // После возврата всех осей в исходное положение ('G28' или 'G28 XYZ') оставьте Z в Z_MIN_POS
#endif // УРОВЕНЬ_КРОВАТИ
/**
* Points to probe for all 3-point Leveling procedures.
* Override if the automatically selected points are inadequate.
*/
#if ENABLED(AUTO_BED_LEVELING_3POINT) || ENABLED(AUTO_BED_LEVELING_UBL)
#define PROBE_PT_1_X 20
#define PROBE_PT_1_Y 160
#define PROBE_PT_2_X 20
#define PROBE_PT_2_Y 10
#define PROBE_PT_3_X 180
#define PROBE_PT_3_Y 10
#endif
/**
* Add a bed leveling sub-menu for ABL or MBL.
* Include a guided procedure if manual probing is enabled.
*/
//#define LCD_BED_LEVELING
#if ENABLED(LCD_BED_LEVELING)
#define MBL_Z_STEP 0.025 // Размер шага при ручном измерении оси Z.
#define LCD_PROBE_Z_RANGE 4 // Диапазон Z по центру Z_MIN_POS для регулировки Z ЖК-дисплея
#endif
// Добавляем пункт меню для перемещения между углами стола для ручной регулировки стола
//#define LEVEL_BED_CORNERS
#if ENABLED(LEVEL_BED_CORNERS)
#define LEVEL_CORNERS_INSET 30 // (мм) Вставка для выравнивания угла
//#define LEVEL_CENTER_TOO // Перемещение в центр после последнего угла
#endif
/**
* Commands to execute at the end of G29 probing.
* Useful to retract or move the Z probe out of the way.
*/
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
// @section возвращение домой
// Центр стола находится в точке (X=0, Y=0)
//#define BED_CENTER_AT_0_0
// Вручную устанавливаем исходное положение. Оставьте эти значения неопределенными для автоматических настроек.
// Для DELTA это верхняя и центральная часть декартового объема печати.
//#define MANUAL_X_HOME_POS 0
//#define MANUAL_Y_HOME_POS 0
//#define MANUAL_Z_HOME_POS 0
// Использовать «Z Safe Homing»; чтобы избежать наведения Z-зонда за пределы рабочего места.
//
// Если эта функция включена:
//
// - Разрешить перемещение по оси Z только после того, как перемещение по X и Y И шаговые драйверы все еще включены.
// - Если время ожидания шагового драйвера истекло, ему потребуется снова вернуться в исходное положение по X и Y перед возвращением в исходное положение по Z.
// - Переместите датчик Z (или сопло) в определенную точку XY перед перемещением по Z при возврате в исходное положение всех осей (G28).
// - Запретить возвращение Z, когда датчик Z находится за пределами рабочего стола.
//
#define Z_SAFE_HOMING
#if ENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE) / 2) // Точка X для возврата в исходное положение по Z при возврате в исходное положение всех осей (G28).
#define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2) // Точка Y для возврата в исходное положение по оси Z при возврате в исходное положение всех осей (G28).
#endif
// Скорость возврата в исходное положение (мм/м)
#define HOMING_FEEDRATE_XY (100*60)
#define HOMING_FEEDRATE_Z (4*60)
// Калибровка @section
/**
* Bed Skew Compensation
*
* This feature corrects for misalignment in the XYZ axes.
*
* Take the following steps to get the bed skew in the XY plane:
* 1. Print a test square (e.g., https://www.thingiverse.com/thing:2563185).
* 2. For XY_DIAG_AC measure the diagonal A to C
* 3. For XY_DIAG_BD measure the diagonal B to D
* 4. For XY_SIDE_AD measure the edge A to D
*
* Marlin automatically computes skew factors from these measurements.
* Skew factors may also be computed and set manually:
*
* - Compute AB : SQRT(2*AC*AC+2*BD*BD-4*AD*AD)/2
* - XY_SKEW_FACTOR : TAN(PI/2-ACOS((AC*AC-AB*AB-AD*AD)/(2*AB*AD)))
*
* If desired, follow the same procedure for XZ and YZ.
* Use these diagrams for reference:
*
* Y Z Z
* ^ B-------C ^ B-------C ^ B-------C
* | / / | / / | / /
* | / / | / / | / /
* | A-------D | A-------D | A-------D
* +-------------->X +-------------->X +-------------->Y
* XY_SKEW_FACTOR XZ_SKEW_FACTOR YZ_SKEW_FACTOR
*/
//#определить SKEW_CORRECTION
#if ENABLED(SKEW_CORRECTION)
// Введите сюда все измерения длины:
#define XY_DIAG_AC 282.8427124746
#define XY_DIAG_BD 282.8427124746
#define XY_SIDE_AD 200
// Или установите коэффициенты асимметрии по умолчанию прямо здесь
// чтобы переопределить приведенные выше измерения:
#define XY_SKEW_FACTOR 0.0
//#define SKEW_CORRECTION_FOR_Z
#if ENABLED(SKEW_CORRECTION_FOR_Z)
#define XZ_DIAG_AC 282.8427124746
#define XZ_DIAG_BD 282.8427124746
#define YZ_DIAG_AC 282.8427124746
#define YZ_DIAG_BD 282.8427124746
#define YZ_SIDE_AD 200
#define XZ_SKEW_FACTOR 0.0
#define YZ_SKEW_FACTOR 0.0
#endif
// Включите эту опцию, чтобы M852 устанавливал перекос во время выполнения
//#define SKEW_CORRECTION_GCODE
#endif
@Raynbow, 👍1
Обсуждение1 ответ
Лучший ответ:
Ваша конфигурация выглядит нормально для большинства определений, которые сравнивались с известными настройками при использовании зонда.
Вы должны знать, что с помощью #define Z_SAFE_HOMING
вы определяете, что датчик находится в середине стола, однако сопло затем смещается от середины стола в соответствии с #define X_PROBE_OFFSET_FROM_EXTRUDER -43
и #define Y_PROBE_OFFSET_FROM_EXTRUDER -4
определенные смещения.
Итак, при команде G28
каретка переместится в (110, 110) для датчика, который отображается как (110 - -43, 110 - -4) = (153, 114) ) для сопла.
Так что с настройкой все в порядке, все работает как надо.
Спасибо за это. Принтер хранился у меня несколько лет, и я практически потерял счет всему, чему научился ранее. Приятно знать, что конфигурация правильная. То есть, по сути, теперь датчик не должен быть неисправным, стартовый Gcode запустит его настройку, и все в порядке?, @Raynbow
@Raynbow Пожалуйста, но благодарность осуществляется посредством [принятия](https://3dprinting.stackexchange.com/help/someone-answers) и [голосования за (хотя требуется не менее 15 представителей)](https:/ /3dprinting.stackexchange.com/help/privileges/vote-up) ответы. Пожалуйста, посетите [тур] и прочитайте нашу [справку], чтобы узнать все о том, что такое Stack Exchange 3DPrinting. Мы все рады помочь! Я когда-то начинал с Анет А8., @0scar
- Сопло соскакивает со стола при использовании Marlin Mesh Desk Leveling
- Размер стола и смещение самонаведения сопла в прошивке Marlin 1.1.9
- Настройка пользовательских границ рабочего стола x/y для Anet A8/marlin
- Надо ли делать автонастройку PID с вентилятором на 100% (Anet A8)
- Anet A8 Откалиброван, но размеры печати неверны
- LCD-дисплей Anet A8 показывает данные о мусоре после завершения печати
- Массовая перегрузка после смены прошивки
- Белые блоки на экране после включения питания Anet A8
Поскольку это Marlin 1.1.9, дополнительную справочную информацию можно найти в разделе Как установить граничные пределы Z-зонда в прошивке при использовании автоматического выравнивания стола? на как ограничения (раньше) работали в Marlin, @0scar