Проверка на пригодность 3D моделей к печати, используя функциональность прогрыммы Blender 3D
Не так давно ко мне обратился человек с помощью посмотреть купленные 3D модели на наличие возможности распечатать их на 3D принтере. Просмотр полученных объектов в 3D редакторе Blender дал мне понять, что все приобретенные модели были условно «бракованными». Почему условно? 3D модели в наше время изготавливаются не только для 3D принтера, но для применения на фрезерном станке (CNC), а вот технология изготовления необходимой модели может кардинально отличаться, и как правило вот такие модели требуют доработки, основная и главная причина – это неманифолдная (не закрытая/не герметичная) геометрия 3D объекта, вторая причина – наличие пересечения граней. Первая вышеуказанная причина является критической, вторая – не так критична, но всё же может сбить столку 3D принтер при печати. При изготовлении 3D моделей для печати я стараюсь избегать наличие не то, что первого, но и второго фактора, т.е. стремлюсь сделать объект цельным, а не из объединения множества элементов. А что делать, если уже есть вот такая условно «бракованная» модель, и тут в наличии два варианта – 1) обратиться за услугой к опытному 3D моделлеру 2) попытаться решить эту проблему самостоятельно, хочется отметить, что исправление чужой 3D модели это довольно нудный и тяжелый процесс, и не всегда исправить что-то готовое удаётся проще, чем заново изготовить. Это зависит сложности полигональной сетки самого объекта, ну и от грамотности того человека, который создавал эту модуль. Кстати говоря 3D модели на выходе даже очень дорогих 3D сканеров очень сложно поддаются редактированию ;).
Давайте остановимся на втором варианте. Я расскажу, как это сделать в программе Blender. Итак, с чего следует начать, первым делом конечно же идём на сайт blender.org и качаем новейшую версию программы. После установки, запускаем Blender и идём в свойства, чтобы поменять язык интерфейса на родной «русский»,
дальше двигаемся на вкладку с дополнениями и включаем «3D Print Toolbox»,закрываем окно с настройками и выделаем все объекты по клавише «A», дальше нажимаем «Х» для удаление стандартного кубика, светильника и камеры, поскольку они нам не будут нужны. Импортируем в сцену необходимый stl файл (файл -> импортировать -> Stl), я же загружу не свой файл, а один из тех, что мне дали на редактирование. После загрузки сверху можно прочитать информацию о объекте, это количество полигонов, вершин, граней, если объектов много, то и их количество. В моём случае это один объект с количеством треугольников 1310228, конечно это очень много, необходимо «облегчить» его для работы с помощью модификатора «Аппроксимация». Вид модели для удобства я тоже изменил, в N-панели (вызывается по клавише N) во вкладке «Затенение» указал быстрый материал (matcap), также поменял в той же панели (для удобства отображения) значение объектива на 135 мм.Надо помнить и знать, что модификатор применяется только к выделенному объекту. В соотношении ставим число 0.5, т.е. уменьшаем количество полигонов на 50%, и нажимаем на кнопку «Применить», в моём случае я повторил данный шаг несколько раз - постепенно снижаю количество полигонов и смотрю на объект, чтобы качество детализации не «разрушилось». Красота! С облегченной моделью намного проще работать моему компьютеру и мне 8) ,снизил количество треугольников до 163778. Теперь перейдём в режим отображения – перспектива (клавиша 5 на цифровой клавиатуре) и попробуем приблизиться от модели или отдалиться от неё колёсиком мыши, у меня при этом модель начала пропадать из области видимости, это говорит о её огромном размере … для корректного отображения нажимаем клавишу «S» и уменьшаем масштаб двигая мышку «назад-вперед», после нажимаем ЛКМ (левую клавишу мыши, и в дальнейшем ПКМ - правая клавиша мыши). Нажмём клавишу «.» на цифровой клавиатуре, чтобы приблизиться к выделенной 3d модели. Сохранимся на всякий случай (сочетание клавиш «Ctrl» + «S» или просто «файл» -> «сохранить»).Итак, после того, как модель готова к дальнейшему редактированию наступило время её оценки на «бракованность». Для этого переходим в режим редактирования по клавише «Tab» и в «T-панели» (вызывается клавишей «T») слева во вкладке «3D- печать» выполняем включаем проверки на «Цельность» и «Пересечения». Наличие значения отличные от «0» в выводе напротив «Non Manifold Edge» и «Bad Config. Edges» говорит, что с моделью что-то не так и её надо редактировать.
«Non Manifold Edge» показывает количество ребер, которые лежат на границах «дырок», а второе значение говорит о количестве ребер тех полигонов, которые имеют вывернутые нормали. Если нажать на «Non Manifold Edge» или «Bad Config. Edges», то высветятся соответствующие ребра на модели. Со второй проблемой справится проще всего: надо перейти в режим редактирования граней («Ctrl» + «Tab» и выбрать «Грань»), выделить все грани объекта по клавише «A» и нажать на сочетание клавиш «Ctrl» + «N», программа сама выправит все нормали как надо, при необходимости можно ещё попробовать нажать на галку «Вовнутрь», чтобы изменить направление всех имеющихся нормалей при необходимости. Направление нормалей можно посмотреть если в «N-панели» во вкладке «Отображение полисетки» выбрать в параметры 'нормали' картинку кубика с выделенной гранью. С первой же ошибкой – намного сложнее. Проверка на пересечение показала, что они есть, и скорее всего это вызвано наличием множества отдельных элементов в объекте, или наличием кривой сетки, как на следующем рисунке.В этом примере имеем три пересекающихся друг с другом грани, а теперь представьте, что у нас несколько сотен тысяч полигонов в одном объекте и попробуйте их теперь найти ;))), благо есть кнопка «Intersect Face» в «T-панели» которая быстро нам определит их место положение, и чтобы к ним перейти достаточно нажать «.» на цифровой клавиатуре, если таких выделенных граней несколько, то надо поочередно снимать с выделения определенные вершины (необходимо нажать клавишу «С», определить колесиком мыши область применения и нажимать на выделенные грани, вершины или ребра колёсиком мыши (именно нажимать, а не крутить), а после опять нажать «.» для фокусировки на выделенном элементе. Чтобы исправить проблему как в случае с предыдущим примером, нужно лишь выделить проблемную вершину в режиме выделения вершин («Ctrl» + «Tab» -> вершина) и оттащить с помощью клавиши «G» в пространстве так, чтобы наши грани перестали пересекаться (если нажать G +Х, то перемещение будет происходить только по оси Х, аналогично с другими осями Y и Z). Если наш объект состоит из множества элементов, их грани тоже будут между собой пересекаться, но как показывает практика, и такие модели напечатать можно, просто необходимо «закрыть» элементы, входящие в них, т.е. сделать их манифолдными. Работать с отдельными элементами намного проще, чем с несколькими сразу, поэтому советую сначала разделить эти элементы в отдельные объекты. Для этого выделяем любой полигон элемента входящего в объект и нажимаем клавишу «L», в результате у нас выделились все полигоны, принадлежащие данному элементу, после нажимаем «P» (Разделение -> выделение -> «Enter») и наш элемент стал отдельным объектом. Аналогично надо проделать со всеми элементами объекта. Там, где будет трудно добраться до полигонов какого-нибудь элемента, надо нажить «Z» (тип затенения – «Каркас») .Теперь выходим из режима редактирования по клавише «Tab» выбираем один из полученных объектов и перемещаем его в отдельный слой по клавише «M», например, тот, что пониже.
Переходим в это слой. Теперь мы можем с ним работать, в первую очередь в режиме редактирования (Tab) объекта проверим его на манифолдность и пересечения граней. Я изменил вид материала matcap, чтобы наши ребра было хорошо видно на рисунке. Видим, что объект не герметичный, эти дыры надо закрыть, и, чтобы сделать это, снимаем все выделения клавишей «A», и с прижатыми клавишами «Alt» + «Shift» щелкаем по одной из ребер на границе любой из «дырок» ПКМ и закрываем её полигонами клавишами «Alt» + «F». Аналогично проделываем со всеми «дырками», которые есть в данном объекте. Если где-то выскакивает ошибка «Нет заполненных граней» (отображается сверху в поле информации) при заполнении «дырок» полигонами, значит были не выделены все ребра по «Alt» + «Shift», это обусловлено кривой геометрией объекта. Если приблизиться можно увидеть вот такие кривые грани,да-да это грани, а не рёбра объекта, их надо выделить и удалить клавишей «Х» (удалить -> грани). После того как все дырки «Закрыты» не поленитесь снова проверить объект на «Цельность» и «Пересечения». У меня всё хорошо :). Теперь его надо переместить на другой слой, назовем этот слой хорошим, потому как там будут находится «не бракованные» объекты. Для этого выходим из режима редактирования и перемещаем этот объект в хороший слой по клавише «М», точно также как и в предыдущий раз.Все эти шаги необходимо сделать со всеми объектами в сцене. Случаи бывают абсолютно разные, но цель одна - сделать объект цельным и зачастую, чтобы прийти к результату нужно включить свою изобретательность и смекалку. К примеру, в таком случае:
я соединил «мостом» соседние ребра клавишей «F», чтобы образовалось замкнутое кольцо, клавишами «Ctrl» + «T» сделал триангуляцию четырехугольника, и закрыл верхнюю «дырку» описанным выше случаем. Бывают случаи и такие, я не буду описывать как я закрыл такую дырку, а покажу лишь результат (и в разрезе тоже), поскольку такие сложные случаи требуют довольно хорошего опыта построения сетки с применением инструментов скульптинга, для выравнивания геометрии,а вот с простыми случаями, описанными выше способен справится практически любой человек.После того как все объекты исправлены и находятся в «хорошем» слое, необходимо выделить их («A»), клавишами «Ctrl» + «J» объединить в один, опять проверить на «целостность» (проверка на «пересечение» даст положительный результат, из-за наличия множества элементов в объекте, чтобы такого не было, объект надо изначально делать монолитным, в данном случае его проще сделать по-новому, чем править уже существующую полисетку, но будем надеется, что данная ошибка не повлияет сильно на результат 3D печати) и экспортировать 3D модель в Stl формат по имеющейся опции плагина «3D-печать» в «Т-панели» (см. последний рисунок).
Не забываем сохраняться! Удачного моделизма, спасибо за внимание :) !
p.s. во избежание просьб на поделиться моделькой - не могу, поскольку а) куплена другим человеком б) она не моя.
Еще больше интересных статей
Колеса. Проект RC машинка
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
 ...
Экспорт CAD файлов в Blender
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Самодельный станок для намотки пластика
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Думаю каждый из нас сталкивался с такой проблемой ка...
Комментарии и вопросы
Для маленьких консолей не нужн...
Очень хорошая идея. Молодец. П...
Как бы цена PP-GF30 от филамен...
Месяца 2 назад печатал эту мод...
Пришло данное уведомление от c...
Решил купить металлическую маг...
Приветствую товарищи, принтер...