Вывод STL-файла, содержащего несколько объектов для импорта в Blender

Я хочу напечатать объект, который выглядит как плоская доска с набором спичечных коробков сверху.

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

Если я правильно понимаю, верхняя грань платы должна быть разбита на много меньших треугольников, чтобы учесть положение спичечных коробков, но кодирование этого вручную (хотя это может быть интересным упражнением для читателя) не будет хорошим использованием времени. Хорошо написанный код, который уже делает это, встроен в приложения FOSS, такие как Blender.

Однако Blender не может объединять или сливать фигуры, которые являются частью одного и того же объекта. Мое нынешнее понимание таково, что мне нужно будет:

  1. Обеспечить блендер с несколькими объектами
  2. Выберите все объекты
  3. Используйте Ctrl-J, чтобы объединить их
  4. Экспорт мира в формате STL

Это правильный подход?

Если да, то мой ключевой вопрос: как мне отформатировать файл STL, чтобы Blender распознал, что он содержит несколько отдельных объектов?

(Я нашел ссылки на STL-файлы, содержащие несколько объектов, но я не видел ничего в любом из STL-файлов, которые я исследовал, что говорит мне: вот конец одного объекта и начало другого.)

Или я должен просто быть неуклюжим и экспортировать два файла STL — один для платы и один для всех спичечных коробков — а затем импортировать оба в Blender?


ПРИМЕЧАНИЕ: Я знаю, что есть бесплатные сервисы, такие как Netfabb, которые исправят мои простые файлы для меня, но я предпочел бы не включать это в мой рабочий процесс, если это возможно.

, 👍6

Обсуждение

Вам было бы легче получить ответ на blender Stack Exchange, но это хороший вопрос и здесь., @Trish


3 ответа


0

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

Взгляните на http://www.openscad.org/ (который должен работать везде, где работает Блендер). Очень легко написать код для создания желаемой формы (в данном случае это будет объединение кубоидов) на языке описания OpenSCAD, а затем вы можете использовать сам OpenSCAD для отображения его в STL. (Это даже можно автоматизировать из командной строки.)


,

Спасибо за совет! Я планирую проверить вашу идею через некоторое время, когда я снова буду работать над этим проектом, и дам вам знать, как все идет., @James Newton


2

Blender импортирует все STL-файлы, как если бы они были одним объектом. Если у вас есть несколько сеток в объекте, который вы хотите разделить, вы можете нажать клавишу tab, чтобы войти в режим редактирования, выбрать детали, которые необходимо разделить, затем нажать P и разделить по выбранному.

Если вы хотите напечатать эти части как одну деталь, вам нужно избавиться от каких-либо внутренних граней. Самый простой способ сделать это-выбрать объект, а затем использовать логический модификатор в режиме объединения. Как только у вас будет выбран и установлен объект, который вы хотите объединить, примените модификатор, который должен оставить вас с объектом без внутренних граней.

,

0

Давайте посмотрим на это...

Это что-то вроде этого: закрытая коробка с выступами, у которых нет внутренней поверхности. как эта сколоченная штука.

Box with pseudobox

Давайте просто для удовольствия экспортируем его как .stl. да, один .stl-файл. А теперь откройте его в Meshmixer:

MeshMixer view of the same model

Выглядит не так уж и плохо, верно? Но красная коробочка? Что это должно означать? еще раз посмотрите на модель блендера: ах да, нормали на этих поверхностях обратные! W F в блендере переворачивает нормали, реэкспортирует .stl, перезагрузите в мешмиксер!

After flipping the normals in the top "cube"

Теперь мы разговариваем! Давайте посмотрим, как мы можем это исправить... Правка > Сделать твердым телом> с высокой точностью твердого тела с высокой точностью и плотностью сетки приводит к разумным острым углам и... ЧЕРТ ВОЗЬМИ! Одно твердое тело, все аккуратно закрыто.

After solidifying Теперь, тест: Экспорт (ctrl+E) и импорт в блендер.

Solidified in blender

Тем не менее, у нас возникла проблема: то, что было 11 граней и 16 вершин, стало почти 1,2 миллиона вершин и 2,4 миллиона граней. Это, конечно, можно немного сгладить, но мы только что добились хорошо печатаемого слияния объектов.

New mesh of the corner geometry

,