LINUX.ORG.RU

Почему stl основной формат для подготовки gcode для 3D-принтера?

 , ,


0

2

stl (stereolithography) содержит в себе информацию о вершинах треугольников из которых получается полигональная сетка. Изобразить идеальный круг с помощью stl невозможно.

gcode – векторный формат, следовательно и круг можно идеально изобразить.

получается полигональная сетка. Изобразить идеальный круг с помощью stl невозможно.

«Идеальность» круга задаётся мелкостью МКЭ © (wikipedia.org) на полигональной сетке и позволяет в пределе изображать почти любые гладкие функции, особенно при использовании вариационных методов аппроксимации (например, минимизацией функционала методом Ритца).

quickquest ★★★★★
()

Потому что STL - отличный формат для 3D, если не нужна скелетка.

peregrine ★★★★★
()
Ответ на: комментарий от quickquest

«Идеальность» круга задаётся мелкостью

Куча треугольников или одна строка:

G02 X100.000 Y100.000 R50

И всё равно, с кучей треугольников круг не идеален.

Jullyfish
() автор топика

gcode – векторный формат,

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

следовательно и круг можно идеально изобразить.

Круг идеально можно изобразить только если скормить G-code токарному станку. Во всех остальных случаях (в т.ч. 3D принтера) команды движения по дуге будут выполняться либо шаговыми двигателями, либо сервоприводами с энкодерами. в любом случае с какой-то дискретностью. Так что круг идеально изобразить не выйдет.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

G-code это не векторный формат, это язык программирования, вообще-то.

В целом да.

Да-да, с циклами, условиями и всем таким.

Это скорее в спецификации. Станки, которые по факту умели бы в циклы, подпрограммы и пр. – я не встречал.

Ну и команды для перемещения там тоже есть, да.

И они представляют из себя вектора, по которым можно построить модель.

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

Физические ограничения есть, это да. (Хотя один мой знакомый рассказывал, что в СССР видел аналоговый ЧПУ-станок, который умеет делать круги). Я про сам формат. Всякие CAD’ы хранят информацию в векторе (вроде как), потом это дело преобразуется в STL, чтобы потом из этого сделать векторы другого формата. Для меня это выглядит крайне сомнительным.

Jullyfish
() автор топика
Ответ на: комментарий от Jullyfish

Станки, которые по факту умели бы в циклы, подпрограммы и пр. – я не встречал.

Даже LinuxCNC умеет. И большинство больших и серьёзных машин тоже. Когда-то G-code не генерился каким-нибудь CAM’ом, а писался вручную. И без циклов, подпрограмм и пр. было бы весьма тоскливо его писать. Например, если надо 100 одинаковых деталей из листа выфрезеровать.

Всякие CAD’ы хранят информацию в векторе (вроде как), потом это дело преобразуется в STL, чтобы потом из этого сделать векторы другого формата.

Совсем не обязательно. Модельку для печати можно и в блендере нарисовать, и отсканировать, например. Будут вершины треугольников без всяких векторов. Даже OpenSCAD без всяких векторов обходится.

Время чертежей и всяких векторных DXF прошло уже давно. Я кроме как для лазерного резака нигде и никак ничем векторным не пользуюсь, например. Да, можно в каких-то CAD’ах экспортировать в что-то векторное, сгенерировать чертёжик даже, но нафига?

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Даже LinuxCNC умеет.

Я в основном с grbl имел дело. Он не умеет.

Даже OpenSCAD без всяких векторов обходится.

Это да, но модель в исходном коде задаётся векторами.

Время чертежей и всяких векторных DXF прошло уже давно.

DXF ещё очень живой, но это скорее не про мелкие изделия, а про генпланы, топографические карты и т.п.

Да, можно в каких-то CAD’ах экспортировать в что-то векторное, сгенерировать чертёжик даже, но нафига?

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

Jullyfish
() автор топика
Ответ на: комментарий от Jullyfish

Это да, но модель в исходном коде задаётся векторами.

Нет, задаётся 3D примитивами.

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

А такого и нет на практике. На практике цепочка такая:

3D модель в каком-то виде, полигональном, 3D примитивы и т.п. -> STL -> слои -> программа G-code.

Причём «слои» - это далеко не вектор. Там на каждый элемент, помимо координат, ещё куча параметров.

Вектор тупо слишком примитивен для таких вещей. Без плоскостей и нормалей весьма тоскливо будет слайсить. И даже после слайсига одних координат точек контура слишком мало.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 1)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)