Руководство

Что такое OBJ: конвертер OBJ в STL

Обновлено · Только меш OBJ в STL

Что хранит Wavefront OBJ, как к нему относятся MTL и UVs и когда экспортировать меш в STL для печати. Конвертер OBJ в STL работает локально в браузере.

OBJ — текстовый формат меша, вышедший из Wavefront. Ты увидишь его как файл .obj, иногда рядом лежит .mtl и папка картинок, на которые указывает MTL. Редакторы вроде Blender пишут его, когда просишь Wavefront. Слайсеры иногда открывают OBJ и часто ведут себя лучше с STL. Эта страница — введение. Конвертер на главной превращает меш в тот STL.

Что лежит в тексте

OBJ устроен построчно. Строки, которые начинаются с v, — положения вершин, по три числа. Строки с f — грани, записанные как индексы в этот список вершин. Грань может перечислить три индекса (треугольник) или больше (квад или n-угольник). Нормали, когда они есть, идут через vn. Текстурные координаты — через vt. Грань тогда может выглядеть как f 1/1/1 2/2/2 3/3/3: вершина, UV и нормаль в одной записи. Строки объекта (o) и группы (g) делят файл на именованные куски. Комментарии начинаются с #.

Ни одна из этих букв не объявляет единицу. Числа — просто числа. Вершина 10 0 0 может быть 10 mm или 10 m. Из-за этой тишины конвертер спрашивает тебя, и поэтому есть пособие миллиметры и метры. Файл сам спор не решит.

Потому что это текст, маленький OBJ можно открыть и прочитать. Рабочий скульпт тоже текст, и он бывает огромным. Этот сайт отказывает файлам больше 40 MB до разбора, чтобы одно бросание не заморозило вкладку только из-за размера. Плотные файлы ниже порога всё ещё могут быть тяжёлыми. Число треугольников после разбора говорит, что окажется в STL.

Материалы — второй файл

Строка mtllib называет файл MTL. Внутри MTL могут быть цвета и пути к картинкам. Эти картинки не внутри OBJ. Это обычные изображения на диске. Конвертер игнорирует mtllib, игнорирует usemtl и игнорирует UVs. В формате STL, который мы пишем, текстуру честно положить некуда. Если OBJ — игровой ассет или рендер, держи OBJ, MTL и картинки вместе. Для слайсера сделай отдельный STL. OBJ и STL — таблица решения для этого разделения.

Несколько именованных объектов становятся одним списком треугольников в STL. Это удобно для одной печати и проблема, если нужны отдельные детали. Экспортируй отдельные OBJ, когда детали — отдельные работы. Счётчик объектов в конвертере говорит, сколько кусков меша слито.

Что мы конвертируем и чего не можем

Мы конвертируем грани меша. Квады и n-угольники триангулируются. Точки и отрезки пропускаются. Если ничего с площадью не осталось, страница говорит, что в OBJ нет треугольных граней.

Мы не конвертируем STEP и STP. Это CAD-файлы граничного представления. Это не список строк v и f, и на сайте нет ядра CAD. Экспортируй меш OBJ из CAD-программы и возвращайся.

Мы не конвертируем PNG и JPG. У картинки пиксели, не грани. Имя model.obj у картинки не пройдёт проверку расширения, если суффикс всё ещё картиночный, а переименованный файл без граней провалит проверку пустого меша. Ни один путь не становится картой высот. Собери меш в редакторе, если нужна геометрия, затем экспортируй OBJ.

Файл, который уже STL, должен остаться STL. Бросить его сюда нельзя, чтобы ты случайно не «конвертировал» файл для печати во второй файл для печати.

От этого файла к слайсеру

Практическая последовательность короткая. Экспортируй OBJ из Blender с применённым масштабом. Брось его на конвертер. Сопоставь единицы. Прочитай габариты и число треугольников. Скачай бинарный STL. Открой этот STL в Bambu Studio, Cura или PrusaSlicer и подтверди размер. Более длинный путь по кликам — как конвертировать OBJ в STL. Что у тебя в конце, описано в что такое STL.

OBJ — хороший формат обмена и плохое место, чтобы хранить обещание печатаемости. Грани могут быть вывернуты. Оболочки могут быть открыты. Конвертер всё равно запишет треугольники. Глянь предпросмотр, если хочешь быстро увидеть ориентацию, а перед длинной печатью доверься проверкам самого слайсера.

Вопросы

Каждый ли файл .obj — треугольный меш?

Нет. OBJ может хранить многоугольники, а некоторые файлы содержат только точки или линии. Этому конвертеру нужны грани. Многоугольники триангулируются при разборе. Файлы без граней падают с ясной ошибкой.

Что за файл MTL рядом с моим OBJ?

MTL — библиотека материалов. Он называет цвета и файлы текстур. Этот конвертер его не читает. Оставь его, если ещё рендеришь OBJ. Для сборки STL он не нужен.

Может ли OBJ оказаться моделью STEP под другим именем?

Нет. STEP — другой формат CAD. Переименование в .obj не сделает его мешем. Экспортируй настоящий OBJ из CAD-программы.

Конвертировать такой OBJ в STL