Коллеги, предлагаю обсудить тему программного выравнивания уровня кровати.
Я недавно завершил постройку принтера с большим столом и столкнулся с тем что традиционно выставлять уровень регулировкой высоты трех болтиков как в принтерах стандартных размеров - это не вариант.
Логичным продолжением было изготовление автоуровня кровати, а вот дальше самое интересное.
Оказалось что кровать условно имеет форму пропеллера, перепады конечно не очень большие, но в максимуме составляют порядка 0.3 мм
Это очень неудобная и неприятная ситуация.
Насколько мне известно существует несколько методов компенсации этой неровности:
1. увеличиваем в слайсере первый слой на уровень перепада, а там как ляжет - местами первый слой будет уходить до нулевой толщины, а местами до величины перепада. Это классический метод не требует модификаций прошивки
2. меряем плоскость кровати по 3 точкам и при печати используем компенсацию к этой виртуальной плоскости. Тут остается мною не изученный вопрос: модель поворачивается матрицой разворота целиком и ось Z поворачивается нормально к новой виртуальной поверхности или ось Z остается вертикальной и просто вносится поправка по вертикали. это реализовано в стандартной прошивке marlin опции ENABLE_AUTO_BED_LEVELING (по трем точкам) или ENABLE_AUTO_BED_LEVELING + AUTO_BED_LEVELING_GRID (средняя проскость по массиву)
или
3. строится нелинейная модель кровати, нормаль Z берется к усредненной плоскости а дальше варианты: либо нелинейность сохраняется с низу до верху либо постепенно выводится в ноль.
Зачатки варианта с сохранением нелинейности есть в developer ветки marlin, опции MANUAL_BED_LEVELING + MESH_BED_LEVELING
или
Я специально значительно увеличил нелинейность для лучшего восприятия.
Вероятнее всего самый интересный вариант это последний - нелинейная кровать с нормализованным вектором Z и постепенной компенсацией Z в ноль. но такой реализации в прошивках я не нашел.
Предлагаю обсудить варианты таких компенсаций, и возможно подскажите реализации.