и при наличии ошибок в Stl-файле – попытаться исправить их.




 

Не так давно ко мне обратился человек с помощью посмотреть купленные 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%, и нажимаем на кнопку «Применить», в моём случае я повторил данный шаг несколько раз - постепенно снижаю количество полигонов и смотрю на объект, чтобы качество детализации не «разрушилось». Красота! С облегченной моделью намного проще работать моему компьютеру и мне , в итоге снизил количество треугольников до 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», программа сама выправит все нормали как надо, при необходимости можно ещё попробовать нажать на галку напротив «Вовнутрь» в «T-панели», чтобы изменить направление всех имеющихся нормалей. Направление нормалей можно посмотреть если в «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-печать» в «Т-панели» (см. последний рисунок).

Не забываем сохраняться! Удачного моделизма, спасибо за внимание !

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-07-01 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: