Как преобразовать математически определенную фигуру в файл G-кода для 3D-печати?
Предположим, у меня есть координаты X, Y и Z (либо в списке,либо в функции z = f(x, y)), которая определяет форму как указанную, и я хочу напечатать ее в 3D со сплошным дном, есть ли простой способ сделать это? Если нет, то как можно поместить функционально четко определенную форму в программное обеспечение для 3D-моделирования, такое как FreeCAD?
@james, 👍4
4 ответа
Для таких вещей, как это, OpenSCAD - ваш друг. Существует несколько различных подходов, которые вы могли бы использовать:
Создайте файл изображения в оттенках серого, отображающий высоту функции в сетке XY, и используйте функцию
поверхности
, чтобы импортировать ее в качестве карты высоты.Напишите функцию в виде математического выражения на языке OpenSCAD и напишите модуль для создания
многогранника
, выполнив итерацию по достаточно тонкой координатной сетке, выполнив выборку функции и создав точки и треугольники.Используйте библиотеку, которую для этой цели уже написал кто-то другой. Я не знаю конкретных, но уверен, что их довольно много.
Другой вариант-использовать конструктор полного контроля, где вы можете определить путь с помощью формул Excel, и он сгенерирует для вас GCode.
Вы можете создать файл .stl на основе вашего математического определения. Вы можете написать программу на выбранном вами языке для вычисления файла .stl.
На вашем изображении изображено множество прямоугольников, каждый прямоугольник можно описать как два треугольника. Файл .stl представляет собой (очень длинный) список всех этих треугольников. Каждый треугольник определяется координатами X, Y и Z трех углов.
solid name
facet normal ni nj nk
outer loop
vertex v1x v1y v1z
vertex v2x v2y v2z
vertex v3x v3y v3z
endloop
endfacet
endsolid name
Каждое n или v представляет собой число с плавающей запятой в формате знака-мантиссы-"e"-знака-показателя, например, "2.648000 e-002". Вершины треугольника должны быть отсортированы с использованием "правила правой руки", т. е. вершины перечислены снаружи в порядке против часовой стрелки.
Вектор нормали ni nj nk равен нулю.
Файл G-кода создается из файла .stl с помощью программного обеспечения для нарезки для вашего 3D-принтера.
Видишь https://en.wikipedia.org/wiki/STL_(формат файла) для получения подробной информации.
Не уверен, о чем именно вы спрашиваете, но вы можете использовать этот рабочий процесс:
- SideFX Houdini: математическая функция + генерация файлов STL
- (необязательно) FreeCAD: Импортируйте STL в виде сетки, делайте все, что вам нужно, в FreeCAD, экспортируйте в STL
- слайсер: импортируйте STL и нарежьте его.
- Как спроектировать червячную передачу в FreeCAD?
- Разделить/редактировать часть в FreeCAD?
- Может ли 3D-модель произведения, защищенного авторским правом, быть передана легально без нарушения авторских прав?
- Как в FreeCAD скопировать эскиз с одной плоскости на другую?
- Как вычислить поверхность и объем большого количества файлов STL?
- Рендер OpenSCAD (F6) завершается ошибкой "ERROR: CGAL error in CGAL_Nef_polyhedron3()"
- Как вогнуть цилиндр с помощью Onshape?
- Как изменить 3D-модель тела?
Я стараюсь использовать OpenSCAD при проектировании, и это была моя первая мысль, когда я увидел этот вопрос. Однако у меня недостаточно клеток мозга, чтобы внести свой вклад так, как это сделали вы., @fred_dot_u