вторник, 29 октября 2013 г.

Уменьшаем разрешение модели для 3D печати на 3D принтере

В процессе предоставления услуг 3d печати и изготовления 3d моделей для своего удовольствия, часто попадаются модели с очень высоким разрешением и соответственно очень большим размером файла. Физически механика 3d принтера RepRap не способна печатать в таком высоком разрешении и время затрачиваемое на нарезку слайсером огромное.
В этой статье рассказывается как уменьшить размер и разрешение 3d модели при помощи  такой замечательной программы как MeshLab.

Немного предыстории.
Захотелось мне напечатать вот такую модель, сначала немного отмаштабировал в Netfabb чтобы 3d модель поместилась в рабочем пространстве моего принтера, но нарезка слайсером Slic3r на моем ноутбуке заняла 25-30 минут (не хватало оперативной памяти в 4ГБ). Далее я уменьшил время нарезки до 15 минут за счет указания Slic3r разрешения принтера Print Settings - Advanced - Resolution = 0.05мм, но мне показалось что это все равно слишком долго, особенно когда подбираешь параметры для новой 3d модели.
Поэтому я начал искать способы уменьшения разрешения 3d моделей до нарезки в слайсере. Результатом этого поиска и стала эта статья.


Итак начнем!


Так как исходная модель в формате STL(ASCII), а MeshLab не всегда корректно открывает такие файлы, зачастую с ошибкой, поэтому рекомендуется при помощи Netfabb сконвертировать его в STL(BIN). Думаю это не должно составить труда, тем более что Netfabb русифицирован.
Если вы еще не сделали этого, то загрузите и установите MeshLab и импортируйте вашу модель.



Из меню выберите Filters - Remeshing, simplification and construction - Quadratic Edge Collapse Detection. Если ваша модель текстурирована, существует также опция (with texture) которая хорошо справляется с этим, сохраняя ваши текстуры в правильном положении. Появится панель с несколькими опциями.



Target number of faces - Желаемое число граней.

Percentage reduction (0...1) - Если больше 0, то это число задает желаемый размер модели как процент от исходного значения.

Quality threshold: 1. - Введите значение между 0 и 1; чем больше значение тем сильнее MeshLab пытается прикрепиться к оригинальной форме модели. По документации не ясно какой результат дает использование максимального значения - по моим впечатлениям при 1 немного медленнее чем меньшие значения, но я вполне доволен использованием значения 1 с хорошими результатами.

Preserve Boundary of the mesh: Да - Процесс упрощения пытается не разрушать границы, таким образом выступающие края сетки остаются нетронутыми.

Boundary Preserving Weight: 1 - Важность границ во время упрощения. По умолчанию 1.0 значит что границы также важны как и все остальное. Значение больше 1 увеличивает важность границ и влияет на удаление вершин на границе.

Preserve Normal: Да - Выберите этот параметр чтобы остановить MeshLab от случайного переключения нормалей поверхностей. Пытается избежать эффекта переворачивания поверхностей и пытается сохранить исходную ориентацию поверхности. Единственный недостаток это увеличение времени обработки.
Если при загрузке вы получили инвертированные нормали, попробуйте переориентировать их функцией Filter - Normals, Curvature and Orientation - Re-Orient all faces coherently (заметьте что это сработает только на неоднородных объектах).

Optimal position of simplified vertices: Да - Когда разрушаются края выбранной позиции вершины минимизирует текущую оценочную ошибку. Может отрабатываться некорректно (создавая зубья) в случае плоских поверхностей.

Planar simplification: Да - Добавляет дополнительное ограничение  упрощения и пытается сохранить текущую форму треугольников. Может очень хорошо улучшить качество формы результирующих треугольников на совершенно плоской части сетки. Как и quality threshold влияет на соотношение точность/сложность.

Weighted  Simplification: Нет - Не рекомендую использовать этот параметр.

Post-Simplification cleaning: Да -  После упрощения добавляет дополнительный набор инструкция для очистки полученной сетки.

Simplify only selected faces - Упрощение применяется только для выбранного набора поверхностей.

Поэкспериментируйте с различными параметрами для конкретной модели и посмотрите на результаты.

Теперь модели нарезаются слайсером намного быстрее и без потери качества при печати на 3d принтере.

Приятной 3d печати!


При копировании ссылка на источник обязательна.