Как оценивается время 3д-печати объекта?

Мне любопытно узнать об алгоритме / принципах, лежащих в основе оценок, которые предоставляют программы для нарезки. Существует ли за этим стандартная техника и насколько она точна ?

, 👍2

Обсуждение

И давайте не будем забывать о психологической стороне: начало печати всегда кажется вечным, отчасти потому, что узнаваемые формы мало чем отличаются друг от друга. Последние 25% или около того слоев не только хорошо видны, но и обычно эти слои занимают гораздо меньшую площадь, чем основа, поэтому время на один слой действительно уменьшается., @Carl Witthoft


2 ответа


Лучший ответ:

1

Вообще говоря, типичный алгоритм учитывает настройки скорости слайсера для конкретных особенностей сборки, таких как заполнение, периметры, верхние / нижние слои и т.д. Расстояние, пройденное соплом с определенной скоростью для каждого объекта, также является частью соответствующих уравнений. Существуют некоторые довольно расплывчатые части движения сопла, основанные на ускорении и других факторах, что делает расчеты менее точными.

Насколько он точен?

Не слишком точно. Мой опыт работы с тремя разными слайсерами показывает, что он никогда не был выше десяти процентов. Я считаю, что различные комбинации функций сборки не будут идентичны от одной модели к другой, что не позволит создать даже приблизительную фигуру из предыдущих сборок.


,

Можете ли вы привести ссылку , где можно было бы увидеть , как делаются эти расчеты ? Как кусок кода или сам алгоритм., @GSH

Ответ Тома ван дер Зандена немного более запутан, чем я могу понять, не будучи человеком кода, но это хорошее начало. Я нашел несколько сайтов, содержащих основные описания вычислений, в том числе http://forums.reprap.org/read.php?2 ,647001, но все они, по-видимому, не учитывают различные факторы. На большинстве сайтов ускорение игнорируется или аппроксимируется. В результате время сборки является приблизительным. Я полагаю, что если бы кто-то применил математику орбитальной динамики к 3D-печати, он мог бы получить более точные результаты., @fred_dot_u

Если вы не имеете дело с многодневными отпечатками, я бы сказал, что 10% - это более чем достаточная точность., @Carl Witthoft


5

Большая часть программного обеспечения, используемого в 3D-печати, является открытым исходным кодом, как и некоторые слайсеры. Cura, например, делает (или делал, этот исходный код из более старой ветви) свою оценку времени печати в gcodeInterpreter.py.

Соответствующая часть исходного кода (упрощенная и со многими удаленными строками для ясности):

    totalMoveTimeMinute = 0.0
    pos = util3d.Vector3()

    for line in gcodeFile:
        G = self.getCodeInt(line, 'G')
        if G is not None:
            if G == 0 or G == 1:    #Move
                x = self.getCodeFloat(line, 'X')
                y = self.getCodeFloat(line, 'Y')
                z = self.getCodeFloat(line, 'Z')
                e = self.getCodeFloat(line, 'E')
                f = self.getCodeFloat(line, 'F')
                oldPos = pos.copy()
                pos.x = x
                pos.y = y
                pos.z = z
                feedrate = f
                currentE = e

                totalMoveTimeMinute += (oldPos - pos).vsize() / feedRate

Как вы можете видеть, (эта версия) Кура просто:

  • Циклы по всем инструкциям G-кода,

  • Вычисляет длину каждого хода (в X / Y / Z) и делит ее на скорость подачи, чтобы получить время, которое займет этот ход,

  • Суммирует это по всем ходам.

и не учитывает:

  • Ускорение или замедление. Это предполагает, что принтер всегда работает с максимальной скоростью подачи,

  • Длина экструдированной нити. Скорость подачи - это скорость перемещения (X, Y, Z, E), но Cura смотрит только на (X, Y, Z).

  • Время, необходимое для нагрева печатного ложа /hotend или самонаведения/автонивелирования,

  • Последствия замедления принтера, если ходы не могут быть считаны (с USB / SD-карты) достаточно быстро (хотя это было бы довольно трудно включить в какую-либо оценку).

Точность этой оценки может быть сколь угодно плохой, если скорость подачи установлена на какое-то нереальное значение.

Более новые версии Cura используют гораздо более продвинутый метод оценки времени, и его можно найти в timeEstimate.cpp. Это гораздо сложнее, и на самом деле учитывает рывок / ускорение / замедление. Это гораздо точнее.

Мы точно знаем, как работают прошивки 3D-принтеров с открытым исходным кодом, поэтому оценить время печати так же просто, как имитировать выполнение G-кода данной прошивкой. Нет никаких причин, по которым вы не можете получить действительно хорошую оценку (если принять во внимание все тонкости методов ускорения / замедления вашей данной прошивки), но написание кода для нее довольно сложно.

,