Для того, чтобы сделать веб-сайт оптимальным и постоянно совершенствовать его, наш веб-сайт использует файлы cookie.
Продолжая пользоваться сайтом, вы даете согласие на использование файлов cookie. Политика конфиденциальности
Принять
Ваша скидка
0%
Время на сайте
0:00
Нет активности на сайте
Получить скидку

Интеграция 3D-моделей из КОМПАС-3D на веб-сайт: экспорт и настройка Three.js

Как перенести инженерную 3D-модель из КОМПАС-3D на сайт? Подробное руководство по экспорту геометрии без текстур и с PBR-материалами, оптимизации полигонажа и интерактивному отображению на веб-странице с использованием библиотеки Three.js.

Внедрение интерактивных 3D-моделей на сайт становится стандартом для промышленных предприятий, архитектурных бюро и интернет-магазинов сложной техники. Инженеры и конструкторы в России чаще всего работают в системе КОМПАС-3D, однако перенос параметрических CAD-моделей в веб-среду требует понимания полигонального моделирования и форматов обмена данными. В этой статье мы разберем полный цикл: от подготовки твердотельной модели до ее интерактивного отображения на странице с помощью Three.js.

Специфика переноса CAD-моделей в веб

КОМПАС-3D оперирует математически точными твердотельными и поверхностными моделями (B-Rep). Веб-браузеры и библиотека Three.js работают исключительно с полигональными сетками (Mesh), состоящими из вершин, ребер и треугольников. Прямой экспорт из CAD в веб без потерь и оптимизации невозможен: "чистая" CAD-геометрия может содержать миллионы полигонов после триангуляции, что мгновенно "положит" браузер пользователя.

Главное правило веб-3D: модель должна быть максимально легкой. Браузер не сможет отрендерить сборку из десяти тысяч деталей в реальном времени без предварительного упрощения геометрии и запекания текстур.

Подготовка модели в КОМПАС-3D

Перед любым экспортом необходимо подготовить сборку или деталь. Этот этап критически важен для производительности итогового веб-приложения.

Удаление скрытых и внутренних элементов. Все детали, которые не видны снаружи (внутренние шестерни, болты внутри корпуса, скрытые полости), необходимо удалить или скрыть. Браузер будет тратить ресурсы на отрисовку невидимых полигонов.

Упрощение фасок и скруглений. Мелкие радиусы и фаски при триангуляции генерируют огромное количество треугольников. По возможности их нужно удалить или укрупнить.

Снижение точности аппроксимации. В настройках КОМПАС-3D можно задать степень сглаживания цилиндрических и сферических поверхностей. Для веб-визуализации достаточно 15-20 градусов отклонения вместо стандартных 1-2 градусов.

Экспорт модели без текстур

Если ваша задача — показать только форму, габариты или кинематику механизма, а материалы будут назначаться программно через код Three.js, достаточно экспортировать "голую" геометрию.

Формат Особенности Применение в Three.js
STL Только полигональная сетка, без цветов и иерархии Быстрый импорт, идеален для 3D-печати и простых форм
OBJ Поддерживает группировку объектов, но без иерархии сборок Удобно назначать разные материалы на разные группы полигонов
STEP / IGES Точная математическая модель (NURBS) Не поддерживается Three.js напрямую, требует конвертации

Пример: Экспорт корпуса редуктора

Инженер удалил все внутренние подшипники и валы, оставив только внешний алюминиевый корпус. Затем в КОМПАС-3D он выбрал "Сохранить как" и указал формат STL. В настройках экспорта он выбрал "Бинарный" формат для меньшего веса файла и задал максимальное отклонение 0.5 мм. Полученный STL-файл весит всего 2 МБ и отлично подходит для загрузки через STLLoader в Three.js.

Экспорт модели с текстурами и материалами

Если необходимо сохранить визуальное оформление (цвет пластика, металличность, шероховатость), стандартных инструментов КОМПАС-3D недостаточно. Система использует собственные физические свойства материалов, которые не транслируются в PBR-текстуры (Physically Based Rendering), понятные веб-движкам.

Для экспорта с цветами и базовыми материалами лучше всего использовать формат VRML (WRL) или OBJ с MTL-файлом. Однако эти форматы устарели и плохо поддерживают современные PBR-карты (металличность, шероховатость, нормалы).

Связка КОМПАС-3D и Blender

Индустриальным стандартом для переноса CAD-моделей в веб является использование Blender в качестве моста (bridge).

Этап первый. Экспорт из КОМПАС-3D в формат STEP или OBJ. STEP сохраняет иерархию сборки и точную геометрию, которую Blender может импортировать через встроенные аддоны или плагин CAD Transform.

Этап второй. Импорт в Blender, назначение PBR-материалов (Principled BSDF), настройка UV-развертки для наложения логотипов или специфических текстур.

Этап третий. Экспорт из Blender в формат glTF (.gltf) или GLB (.glb). GLB — это бинарный контейнер, который упаковывает геометрию, материалы и текстуры в один файл. Это "JPEG для 3D" и самый оптимальный формат для Three.js.

Интеграция на сайт с помощью Three.js

Three.js — мощная JavaScript-библиотека, использующая WebGL для отрисовки 3D-графики в браузере. Для загрузки оптимизированной модели используется класс GLTFLoader.

Базовый алгоритм внедрения:

Создание сцены, камеры и рендерера. Рендерер привязывается к HTML-элементу canvas на странице.

Настройка освещения. Для корректного отображения PBR-материалов из GLB необходимо добавить Environment Map (карту окружения) или комбинацию из направленного (DirectionalLight) и фонового (AmbientLight) света.

Загрузка модели. GLTFLoader асинхронно скачивает GLB-файл, парсит его и добавляет в сцену.

Добавление интерактивности. Подключение OrbitControls позволяет пользователю вращать модель мышью или пальцем на сенсорных экранах, приближать и отдалять камеру.

Пример: Конфигуратор промышленного насоса

На сайте завода размещен 3D-конфигуратор насоса. Пользователь может вращать модель на 360 градусов. При клике на определенные части (двигатель, крыльчатка) Three.js с помощью технологии Raycasting определяет, на какой меш попал курсор, и выводит всплывающую подсказку с техническими характеристиками. Все это работает благодаря тому, что при экспорте из КОМПАС-3D через Blender детали сохранили свои уникальные имена (mesh names).

Оптимизация для веб-среды

Даже после упрощения в КОМПАС-3D, CAD-модели остаются тяжелыми. Перед загрузкой на сервер их необходимо оптимизировать.

Draco-сжатие. Алгоритм от Google, который сжимает геометрию (вершины и нормали) в 10-15 раз без визуальных потерь. Three.js поддерживает распаковку Draco "на лету" через DRACOLoader.

Сжатие текстур. Текстуры в формате PNG или JPEG лучше конвертировать в формат KTX2 или Basis Universal. Они аппаратно ускоряются видеокартой и занимают в разы меньше места в оперативной памяти.

Instancing (Инстансинг). Если в сборке много одинаковых деталей (например, тысячи болтов или зубьев), в Three.js нужно использовать InstancedMesh. Это позволяет отрисовывать тысячи объектов одним вызовом отрисовки (draw call).

Типичные ошибки при экспорте из КОМПАС-3D

Инженеры, впервые сталкивающиеся с веб-визуализацией, часто совершают ряд ошибок, которые сводят на нет все усилия по оптимизации.

Экспорт в STEP для прямого использования на сайте. Браузер не умеет читать NURBS-поверхности. Попытка использовать сторонние JS-библиотеки для триангуляции STEP прямо в браузере приведет к зависанию страницы на несколько минут.

Игнорирование системы координат. В КОМПАС-3D ось Z направлена вверх, а в Three.js (и большинстве веб-движков) ось Y направлена вверх. Если не учесть этот нюанс при экспорте или импорте, модель на сайте будет "лежать на боку". В Blender это решается одной галочкой при настройке импорта/экспорта.

Сохранение сборок как единого тела. Если при экспорте в STL объединить все детали в один меш, вы потеряете возможность кликать на отдельные части модели в Three.js и не сможете анимировать подвижные узлы (например, открытие дверцы или вращение вала).

Размещение на сайте и роль CMS

Внедрение 3D-вьюера требует не только написания JavaScript-кода, но и грамотного управления цифровыми активами. Файлы GLB, карты окружения и текстуры должны быстро отдаваться сервером.

Перенос 3D-моделей из КОМПАС-3D на веб-сайт — это многоступенчатый процесс, требующий понимания как инженерного проектирования, так и особенностей работы браузеров. Прямой экспорт без подготовки приведет к созданию неподъемных файлов, которые невозможно использовать в реальном времени. Ключ к успеху кроется в предварительном упрощении геометрии внутри CAD-системы, использовании Blender в качестве связующего звена для создания PBR-материалов и финальном экспорте в формат GLB. Интеграция через Three.js с применением Draco-сжатия и OrbitControls позволяет создать интерактивный и легкий 3D-вьюер.

Ответы на частые вопросы

Можно ли напрямую загрузить файл STEP из КОМПАС-3D в Three.js?

Нет, Three.js не поддерживает NURBS-поверхности (форматы STEP, IGES) напрямую. Браузер работает только с полигональными сетками. Файл STEP необходимо предварительно конвертировать в полигональный формат (OBJ, STL или GLB) через промежуточное ПО, например, Blender.

Какой формат лучше всего подходит для загрузки 3D-моделей на сайт?

Оптимальным форматом является GLB (бинарный glTF). Он упаковывает геометрию, материалы и текстуры в один компактный файл, поддерживает PBR-материалы и быстро парсится библиотекой Three.js через GLTFLoader.

Почему модель из КОМПАС-3D на сайте лежит на боку?

Это связано с различием систем координат. В КОМПАС-3D вертикальной осью является Z, а в Three.js и большинстве веб-движков — ось Y. Проблема решается поворотом модели на 90 градусов по оси X при экспорте из Blender или программно в коде Three.js.

Как уменьшить вес 3D-модели для бы загрузки на сайте?

Необходимо упростить геометрию в CAD (удалить фаски и скрытые детали), применить Draco-сжатие для вершин и использовать форматы текстур KTX2 или Basis Universal. Это может уменьшить вес файла в 10-20 раз без потери визуального качества.

Какую CMS использовать для сайта с 3D-конфигураторами?

Отличным выбором является AlmaCMS. Эта российская платформа обеспечивает высокую скорость загрузки страниц, что критично для тяжелых 3D-ассетов, и позволяет гибко настраивать кэширование статических файлов и встраивать пользовательские canvas-блоки для Three.js.

Самопроверка усвоенного материала: Экспорт CAD-моделей в веб

Сократ: «Истинное знание рождается в процессе испытания»

С каким типом геометрии работает браузер и Three.js?

С NURBS-поверхностями
С твердотельными B-Rep моделями
С векторными кривыми
С полигональными сетками (Mesh)

Какой формат является "золотым стандартом" для передачи 3D-моделей с материалами в Three.js?

STEP
STL
DXF
GLB (бинарный glTF)

Какую роль выполняет Blender в пайплайне КОМПАС-3D -> Веб?

Генерирует G-код для 3D-принтера
Служит финальным хостингом для моделей
Пишет JavaScript-код для Three.js
Выступает мостом для конвертации, назначения PBR-материалов и экспорта в GLB

Что такое Draco-сжатие в контексте веб-3D?

Алгоритм сжатия текстур PNG в JPEG
Метод шифрования 3D-моделей от копирования
Инструмент для автоматического удаления фасок
Алгоритм сжатия геометрии (вершин и нормалей) для уменьшения веса файла

Почему при экспорте из КОМПАС-3D важно удалять скрытые и внутренние детали?

Чтобы избежать ошибок с системой координат
Чтобы Three.js не заблокировал загрузку из-за лишних полигонов
Чтобы уменьшить размер файла и снизить нагрузку на видеокарту браузера

Какая CMS упомянута как оптимальная для управления сайтами с 3D-контентом?

WordPress
Joomla
Tilda
AlmaCMS

Какой класс в Three.js используется для добавления возможности вращения модели мышью?

Raycaster
GLTFLoader
DirectionalLight
OrbitControls
Еще публикации по теме Дизайн
Подробное руководство по переносу 3D-моделей из КОМПАС-3D на веб-сайт. Экспорт без текстур и с PBR-материалами, оптимизация полигонажа, настройка Three.js и интеграция через AlmaCMS.