Почти все знают в какие виды файлов используются для сохранения изображений: PNG, JPG, BMP, TIFF и другие. Но что насчёт объемных моделей? Казалось бы, у нас добавляется третье измерение, но при этом размер файла зачастую меньше, чем даже изображение этой же модели. В этой статье мы расскажем вам всё, что необходимо знать о файлах для хранения моделей и даже больше: способы конвертации, особенности каждого из видов файлов, а также формат файлов для 3D-печати.
Особенности хранения 3D-моделей
В отличие от изображений, в мире 3D-моделей не прижился воксельный (воксель - объемный пиксель) метод хранения. Лишь некоторые умельцы используют его при создании игр или в научных исследованиях. Связано это с историей появления объемной графики: в отличии от появлении фотографии, объемная графика изначально создавалась на компьютере, причем использовалась для анимации. Воксели намного сложнее анимировать, поэтому вместо них начали использовать полигональный метод хранения: вся модель состоит из множества полигонов - треугольников, имеющих три точки. Это похоже на создание скульптур из бумаги - соединяя множество плоских кусочков можно получить что-то объемное и даже гладкое.
Полигональная модель дельфина
Хоть данный метод сохранения в виде полигонов нельзя назвать растровым, данные методы имеют много общего: невозможность увеличить качество, прямая зависимость между качеством и весом файла, простота в редактировании. Это наиболее практичный формат для сохранения и использования моделей в 3D-печати, но не единственный. Далее мы рассмотрим наиболее популярные форматы для хранения 3D-моделей.
Универсальные форматы файлов 3D-моделей
На самом деле существует столь же много различных методов хранения 3D-моделей, сколь много их существует для хранения фото и видео. Но существуют и универсальные форматы, которые, хоть и с некоторыми ограничениями, можно открывать почти в любой программе.
STL
Вопреки заблуждениям, STL изначально предназначался не для художественного моделирования. Его разработала компания Albert Consulting Group и предназначался он для раннего метода 3D-печати - стереолитографии. Отсюда и возникло название файла - STereoLithography. Через некоторое время компания открыто опубликовала формат и с тех пор он получил огромную популярность.
Формат STL широко используется благодаря простоте своей структуры: полигоны (фасеты) и их нормали. Первые нужны для задания поверхности, а вторые для указания где находится внешняя сторона полигона. Поэтому данный формат можно считать самым универсальным.
Сравнение CAD модели и STL модели
Из-за того, что модель задается с помощью множества треугольников, то нельзя точно задать криволинейные поверхности, ведь для этого понадобится бесконечное количество треугольников, а следовательно и бесконечное хранилище данных. Но при использовании в 3D-печати данный минус не столь важен, так как точность, задаваемая с помощью треугольников, выше точности печати.
OBJ
Этот формат очень похож на STL, но отличается возможностью наложения текстур, заданием материала и хранением иной информации. Поэтому OBJ можно назвать расширенной версией STL и предназначен он по большей части для программ художественного моделирования, таких как Blender, Autodesk Maya, 3Ds Max, Meshlab и другие.
Обработка модели формата OBJ в программе Blender
STEP
Теперь мы переходим на инженерную сторону 3D-моделирования, ведь STEP - это единственный формат, который можно открывать в любой программе для инженерного моделирования и свободно редактировать встроенными в программу инструментами. STEP изначально разрабатывался как мировой стандарт формата для хранения изделий на компьютере, а предназначался для полного цикла разработки детали. Именно поэтому все серьёзные программы инженерного моделирования и физических симуляций могут работать с данным форматом. Отличительной стороной STEP является большая точность: модель создается инструментами, позволяющими задавать кривые с помощью формул. Поэтому точность в данном формате бесконечна: насколько бы сильно вы ее не увеличили, кривая линия останется кривой, а не станет множеством прямых линий.
Создание модели в САПР SolidWorks
Для создания моделей в формате STEP используются САПР (Система Автоматизированного ПРоектирования). Благодаря стандарту ISO, все САПР программы могут работать в данном формате. Но не все данные свободно передаются из одной программы в другую через STEP. Для нас самое главное - перенос геометрии модели, а симуляции, материал и прочие данные, которые формат STEP не хранит, носят второстепенный характер.
Собственные форматы
В данную категорию относятся форматы файлов, которые можно открыть только в одной программе - в которой файлы и были созданы. Они предназначены только для хранения проектов, зачастую их невозможно применить в 3D-печати. Исключением является слайсер Ultimaker Cura, в котором есть возможность добавлять плагины, позволяющие открывать напрямую из слайсера файлы таких программ как Inventor, Siemens NX, Solidworks и других.
Инженерные программы
Как уже упоминалось ранее, данные программы называют САПР. Так как это ПО зачастую предназначено для производств, то и общий формат файлов у них имеется (STEP). Некоторые программы, зачастую производимые одной компанией, позволяют работать в общей экосистеме. Например, во многих инженерных программах компании Autodesk можно встретить совместимость форматов: Fusion 360 может открыть файл созданный в Inventor. Но при таком способе открытия всё же будет теряться часть информации об изделии, например информация о произведенных физических симуляциях. Поэтому если деталь не разработана до конца, не следует перемещать её между разными программами.Художественные программы
К данной категории можно отнести программы, созданные для визуализации: мультипликация, спецэффекты, создание фигурок и моделей для видеоигр. В отличии от предыдущего случая, в программах художественного моделирования царит хаос. У каждой программы есть свой собственный формат, а общий формат STL ограничивает функционал каждой из программ до простейших инструментов. Но этого хватит для создания моделей, которые в дальнейшем будут напечатаны на 3D-принтере, так как важна лишь геометрия модели.
Gcode - формат для 3D-печати
На самом деле Gcode является больше, чем просто форматом файла. Это отдельный язык программирования. Но вместо исполнения команд компьютером, команды на данном языке исполняет 3D-принтер. Изначально данный язык разрабатывался для сложных ЧПУ станков, а 3D-принтер и является одним из простейших представителей данного вида устройств. В отличии от предыдущих форматов, gcode можно легко редактировать вручную, тем самым отдавая команды принтеру напрямую, в обход компьютера. С помощью этого можно создавать макросы, позволяющие облегчить работу с 3D-принтером. Подробнее о работе с языком gcode и о создании макросов можете прочитать в статье на нашем сайте.
Конвертация форматов файлов 3D-моделей
Если у вас появилась необходимость в перемещении модели между программами для 3D-моделирования, то стоит определить, в какой группе находится программа откуда и куда вы хотите переместить модель. Если вы переносите её из одной САПР программы в другую, то лучше всего использовать формат STEP, чтобы не ограничивать количество инструментов для дальнейшего моделирования. Во всех остальных случаях единственным вариантом будет формат STL, который могут распознать некоторые САПР и в который художественные программы могут сохранять модель. Стоит учитывать, что при переносе модели из художественной программы в САПР каждый полигон переносится как отдельная поверхность, поэтому работа с файлами формата STL в инженерных программах может вызвать трудности как в обработке, так и в простом просмотре модели. Связано это с принципами работы САПР: он выполняет обработку каждой поверхности в отдельности, а чем больше поверхностей, тем больше необходимо выполнить расчетов для одной операции.
Совет: если при переносе модели из программы художественного моделирования в САПР качество модели не столь важно, то лучше как можно больше уменьшить количество полигонов. Таким образом уменьшается нагрузка на компьютер и увеличивается быстродействие при обработке модели в САПР.