Технический форум по робототехнике.
setar » 06 мар 2017, 13:38
нужно посмотреть как оно реализовано.
то что я видел когда оно впервые появилось - имело "разрывы" 3D пространства, и проход линии по такому разрыву сопровождался хрустом как по песку, с соответствующими дефектами на изделии.
Но это даже не важно - у них идеология не правильная, нельзя вслед за кривой кроватью распространять кривизну на все изделие.
его нужно компенсировать динамически изменяемой высотой слоя, с целью вывести кривой стол к ровной поверхности к определенному уровню (например за 10 первых слоев)
sergey2x » 06 мар 2017, 15:32
setar писал(а):Но это даже не важно - у них идеология не правильная, нельзя вслед за кривой кроватью распространять кривизну на все изделие.
его нужно компенсировать динамически изменяемой высотой слоя, с целью вывести кривой стол к ровной поверхности к определенному уровню (например за 10 первых слоев)
Ну, судя по строчкам (если я правильно понял)
----
#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
// 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<height>
#define ENABLE_LEVELING_FADE_HEIGHT
----
идеологию они поменяли

setar » 06 мар 2017, 15:49
О, круто

значит не зря я им мозг выносил, хоть и плюнул потом
Madf » 06 мар 2017, 17:19
а у вас там г-код генерится на печать или он в релтайме как-то из 3д модели рождается?
я к чему это всё, неужели трудно, на дуня железках сделать вначале оценочность поверхности, потом вносить поправки г-код и потом только печатать?
dccharacter » 06 мар 2017, 18:15
Madf писал(а):а у вас там г-код генерится на печать или он в релтайме как-то из 3д модели рождается?
я к чему это всё, неужели трудно, на дуня железках сделать вначале оценочность поверхности, потом вносить поправки г-код и потом только печатать?
Не знаю, но по логике должно быть трудно. Потому что представь себе длинную линию. Раньше она была одной строчкой - G1 XYZ. А теперь ее надо превратить в отрезки с шагом интерполяции. И так с каждым отрезком.
Добавлено спустя 1 минуту 2 секунды:setar писал(а):я бы по другому сказал, вне зависимости от числа узлов матрицы (ее можно определить хоть 5x5) выравнивание все равно будет плоскостью (средняя плоскость через массив точек со смещением по максимальной вершине вверх, чтобы эта вершине стала нулем)
следовательно датчик нужен чтобы понять как и где ровнять стол
Ну тогда результат офигенный
Madf » 06 мар 2017, 18:48
dccharacter писал(а):но по логике должно быть трудно
В теории, можно вообще основу/подложку/поверхность самому готовить под модель на основе её (из 3Д или лучше г-кода), печатать её, а потом уже общую печать делать с отступом.
dccharacter » 06 мар 2017, 18:59
Где-то тут Сергей публично чесал затылок на эту тему. Там не все тривиально.
Madf » 06 мар 2017, 19:22
dccharacter писал(а):Там не все тривиально.
Я не говорил, что это "просто". У меня 3Д принтера нет, всех нюансов не знаю, но на фрезерах эта проблема как бы решается щупами. Т.е. тему конечно можно ещё развить, но это наверное не в теме данного раздела. Правда если на выходе получается так, как описал человек выше, то вообще ставит под сомнение этой всей затеи с оптическим датчиком...
зы: мало того, что проблема с сыростью ПО 3Д печати, так ещё если даже доведя до совершенства форму датчика и его ПО, всё равно непонятно как стандартизировать его крепление для "нулевой точки" (т.е. как бы его опять надо настраивать).
dccharacter » 06 мар 2017, 19:48
Да большинство принтеров так гуляет, что там хоть объидеалься с датчиком. Более того, это гуляние является залогом нормального функционирования, потому что убирая люфты из конструкции, повышаются требования к точности всех элементов и сборки экспоненциально.
setar » 07 мар 2017, 16:13
Madf писал(а):а у вас там г-код генерится на печать или он в релтайме как-то из 3д модели рождается?
я к чему это всё, неужели трудно, на дуня железках сделать вначале оценочность поверхности, потом вносить поправки г-код и потом только печатать?
если вопрос про то как работает "кривой" автоуровень ( AUTO_BED_LEVELING_BILINEAR + ENABLE_LEVELING_FADE_HEIGHT),
то Gcode там используется стандартный, построенный для идеального 3D пространства.
Все изменения вносятся в координату Z которая перемещаясь в виртуальном пространстве при построении например плоскости первого слоя, в реальных координахах будет огибать неровности стола.
И чем дальше от стола и ближе к значению FADE_HEIGHT тем огибания становятся менее выраженными и виртуальная плоскость приближается к реальной
Добавлено спустя 3 минуты 48 секунд:уточню:
все изменения вычисляются и вносятся непосредствено при печати,
причем значения поправок могут отличаться от принта к принту, если кровать механически гуляет
Madf » 07 мар 2017, 17:18
setar писал(а):все изменения вычисляются и вносятся непосредствено при печати,
причем значения поправок могут отличаться от принта к принту, если кровать механически гуляет
Тогда получается, что это некий реалтайм, а не пред подготовка поверхности.

Если я правильно понял. Честно говоря, в это слабо верится, ибо оптический датчик должен всегда видеть поверхность стола (а она занята моделью уже) или отталкиваться от последнего слоя детали и вносить коррективы...
А так, да, раз ПО принтера не очень корректно/точно подходит к учету кривости поверхности, то логично предположить, что проще её просто пред подготавливать (заливать), а только потом печатать. Хотя тут как я понимаю, уже будет проблема разрешения слоя, ибо может понадобится такое отклонение по Z, при котором сопло не сможет выдать нужную тонкость пластика...тут как говорится, уже не хватает лопатки, чтобы как куличик подровнять.

setar » 07 мар 2017, 23:06
Ну не до такой степени реалтайм чтобы смотреть где стол прямо во время печати, тут проще
по команде G29 снимается матрица замеров высоты стола, и поправки на основании этой матрыцы (обычно 3x3 4x4 5x5) сохраняются до следующей команды G29, чаще всего это ровно один принт
dccharacter » 07 мар 2017, 23:09
Ха
А вот на какую вы меня мысль навели. Вот мы отхоумились G28, да? В некоей точке (50,50), например. Дальше делаем G29, получаем матрицу. А ведь эта матрица коррекции не относительно точки (50,50), а, скорее всего, относительно точки (0,0). Сергей, нет возможности проверить, учитывается ли позиция хоуминга при коррекции?
setar » 08 мар 2017, 00:03
нет, не учитывается
G29 отменяет предыдущий хоуминг по Z и имеет больший приоритет
во время действия виртуального 3D объема замеренный ранее ноль теряет смысл, он все равно будет скорректирован.
чтобы понять как это работает представьте что мы хотим печатать на наклонной выпуклой линзе
сначала мы снимаем с нее мартицу относительно реальной координатной сетки
вторым проходом мы находим среднюю проскость (у нас она будет проходить первендикулярно оптической оси на равном удалении от самой выпуклой части и краев)
затем находим максимально высокую точку относительно найденной плоскости - там и будет новый ноль, и он вовсе не совпадает с максимально высокой точкой в реальных координатах
dccharacter » 08 мар 2017, 00:21
// Don't allow auto-leveling without homing first
if (axis_unhomed_error(true, true, true)) return;