03.02.2025 • C3D Modeler

TDE 3D — редактор технической графики на базе ядра C3D

Эксперты ИТОРУМ знакомят с TDE 3D — отечественным решением для разработки технической графики для интерактивного электронного технического руководства (ИЭТР) на базе геометрического ядра C3D — и освещают примечательные моменты, с которыми столкнулись в процессе его создания.

Одним из основных направлений деятельности компании ИТОРУМ является проектирование, инжиниринг и создание цифровой модели. Компания 15 лет представлена на рынке, и в ней работает более 90 квалифицированных специалистов.

Рассмотрим редактор технической графики Technical Documentation Editor 3D (TDE 3D) и интересные моменты, с которыми мы столкнулись в процессе его разработки. TDE 3D является альтернативой сразу нескольким зарубежным приложениям, объединяя их функционал в одном продукте. Инструмент плотно интегрирован в Technical Guide Builder, систему разработки электронной эксплуатационной документации, которую построила компания «Прикладная логистика», партнер ИТОРУМ. TDE 3D предназначен для публикации двухмерной и трехмерной графики — как для нативного просмотра, например в десктопном приложении DG Browser, так и для загрузки в веб. Это полностью отечественное приложение, то есть продукт, который базируется на отечественном геометрическом ядре C3D.

TDE 3D — редактор технической графики на базе ядра C3D, фото 1
Рис. 1. Редактор графики TDE 3D

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

Пример создания ИЭТР при помощи TG Builder и TDE 3D служит для понимания того, для чего разрабатывался редактор TDE 3D.

TDE 3D — редактор технической графики на базе ядра C3D, фото 2
Рис. 2. Создание модуля данных каталога в ИЭТР

Для начала мы понимаем, какую машину описываем, какой узел. Создаем публикацию, если ее еще нет, а в ней — модуль данных. Модуль данных — это атомарная единица документации, которая описывает конкретный узел либо процесс. В данном примере это каталожный модуль данных, и в нем создается спецификация. Спецификация — это атрибутивный перечень элементов конкретного узла, в котором присутствуют идентификационные моменты.

TDE 3D — редактор технической графики на базе ядра C3D, фото 3
Рис. 3. Создание иллюстрации в ИЭТР

Далее можно будет создать связь с моделью для интерактивности. На этом этапе формируется иллюстрация, запускается TDE 3D, и внутри ПО происходит редактирование иллюстрации.

TDE 3D — редактор технической графики на базе ядра C3D, фото 4
Рис. 4. Двухсторонняя интеграция системы разработки документации с TDE 3D

Трехмерную модель в TDE 3D можно загрузить как из САПР-системы при помощи соответствующего плагина, так и непосредственно из файла. При этом данные по спецификации и по геометрии синхронизируются между системой разработки и TDE 3D, и при изменении в одной системе это отображается в другой, как и наоборот.

TDE 3D — редактор технической графики на базе ядра C3D, фото 5
Рис. 5. Просмотр публикации в нативном приложении и TDS

Существует возможность опубликовать документацию для нативного просмотра в десктопном приложении DG Browser и распространить ее, используя даже обычный флеш-накопитель. Эту же документацию можно опубликовать в вебе, в сервисе TDS, который является основным продуктом ИТОРУМ. Данный сервис позволяет хранить в себе документацию, распространять ее в вебе со всеми иллюстрациями и имеет широкие возможности по интеграции со сторонними системами.

Как мы пришли к созданию TDE? Мы искали альтернативу зарубежным редакторам из-за определенных проблем с лицензированием вследствие введенных санкций. Полагаясь на богатый опыт в сфере разработки инженерной графики, мы пришли к выводу, что имеет смысл создать собственный редактор и наполнить его большим количеством специфического функционала для решения конкретных задач конечного разработчика графики. Мы опробовали несколько вариантов графических геометрических ядер и, безусловно, рады тому, что получили в распоряжение программный продукт C3D Toolkit. Почему? Во-первых, практически весь необходимый функционал доступен «из коробки». Если же он недоступен, то это решается буквально руками, при помощи доступного инструментария. Во-вторых, в случае с геометрическим ядром C3D действует адекватная политика по распространению решений, которые базируются на этом ядре. Отдельного внимания заслуживает высокое качество технической поддержки. Специалисты из техподдержки могут помочь с широким рядом вопросов — от методологической координации с примерами рабочего кода до реализации индивидуальных функций, в которых возникает потребность.

К основным возможностям TDE 3D можно отнести манипуляции с элементами модели, то есть разнесение, вращение и иные пространственные манипуляции. Также функционал включает работу со спецификацией, с выносками, с видами, с материалами и освещением, подготовку двухмерных иллюстраций, помимо трехмерных.

TDE 3D в некотором смысле упрощает сам процесс разработки графики непосредственно в ИЭТР. Вместо того чтобы при помощи файлов передавать иллюстрации из систем в системы, достаточно запустить TDE 3D и в одном приложении совершить все необходимые манипуляции с моделью, получить необходимую иллюстрацию. Все это можно делать, синхронизируясь уже с системой разработки.

Проанализируем несколько кейсов, с которыми столкнулась команда ИТОРУМ при разработке десктопного и веб-приложения. Остановимся на том, как мы используем SDK от C3D Labs для воплощения наших разработок.

Первым рассмотрим десктопное приложение.

TDE 3D — редактор технической графики на базе ядра C3D, фото 6
Рис. 6. Model Info файл

В файле модели мы можем разместить сравнительно небольшой объем информации, нужной для ИЭТР. В него входит геометрия, строковые атрибуты, то есть базовые данные. Поэтому мы создаем MI-файл, который служит для отделения дополнительных параметров, содержащих информацию о манипуляциях и других свойствах модели, необходимых для ИЭТР. MI расшифровывается как Model Info. Десктопное приложение ИТОРУМ TDE 3D автоматически создает одноименный MI-файл в папке с исходной моделью или загружает его в себя, если такой файл был ранее создан. Таким образом разработка 3D-графики может быть передана от одного специалиста к другому. MI-файл представляет собой обычный формат JSON, в котором размещена информация о самой модели, ее составных частях, о том, как ее следует отображать.

TDE 3D — редактор технической графики на базе ядра C3D, фото 7
Рис. 7. Снэпшоты (виды)

Среди отображений имеется описание снэпшотов. Что такое снэпшоты, которые мы также называем «виды»? В контексте приложения ИТОРУМ под снэпшотом мы понимаем визуальное представление 3D-модели с примененными изменениями относительно исходного состояния. Это может быть просто другой поворот камеры или направление взгляда, освещение или примененные сечения, скрытие некоторых элементов или примененная трансформация к узлам. Инженер-конструктор при создании 3D-модели генерирует несколько снэпшотов. Классический пример — это «собрано» и «разобрано». Обычно вид «собрано» не отличается от исходной модели. Напротив, снэпшот «разобрано» в большинстве случаев отличается примененными трансформациями к узлам. Такой снэпшот еще называется «разнесенный».

Для того чтобы показать, каким образом происходит разнесение узлов модели, мы используем линии разнесения. Они отображают траекторию разнесения и порядок сборки-разборки составных узлов. Для отображения линий разнесения мы используем специальное wireframe-представление. Мы реализовали возможность настраивать шаблон штриха, его толщину и цвет.

TDE 3D — редактор технической графики на базе ядра C3D, фото 8
Рис. 8. Разнесение болтового соединения

Иллюстрации демонстрируют, как происходит разнесение болтового соединения: вынесена гайка, вынесен болт, показано, как с помощью линий поднимать крышку. У линий разнесения можно редактировать опорные точки — добавлять их, удалять, перемещать в пространстве. Для того чтобы обозначить опорную точку, мы используем специальный виджет в приложении. Данный виджет может находиться в активном и неактивном состоянии. В неактивном состоянии он отображает, что опорная точка есть, а в активном состоянии у нее появляются оси координат для перемещения по осям и по плоскостям.

Теперь, когда мы создали 3D-модель с разными снэпшотами, нужно все это отображать в веб-приложении, ведь конечные клиенты наших заказчиков будут просматривать созданную нами документацию в приложении TDS, которое открывается в браузере.

TDE 3D — редактор технической графики на базе ядра C3D, фото 9
TDE 3D — редактор технической графики на базе ядра C3D, фото 10
Рис. 9. Реализация снэпшотов в веб-приложении

Для того чтобы реализовать снэпшоты в веб-приложении, пришлось решить одну задачу. Дело в том, что в веб-версии библиотеки ядра C3D отсутствует возможность применять трансформации к узлам модели непосредственно в браузере. Чтобы преодолеть это препятствие, мы создали микросервис, который на самом сервере берет MI-файл, применяет трансформации к узлам из MI-файла и сохраняет новую модель рядом с исходной. Таким образом для отображения разных снэпшотов пользователю отображаются разные модели. Например, «собрано» и «разобрано».

Такой сервис создает снэпшот в момент первого обращения к этому снэпшоту, то есть тогда, когда его в первый раз загружает самый первый пользователь. В этом случае возникает проблема с производительностью. Возьмем, к примеру, публикацию, содержащую сто модулей данных. В каждом модуле данных будет по одной 3D-модели, и для каждой модели будет два снэпшота «собрано» и «разобрано». Снэпшот «собрано» — это исходная модель, а снэпшот «разобрано» необходимо будет создать. Если модель большая, то создание снэпшота может занять много времени. Если пользователь активировал задачу отобразить ему снэпшот, который еще не создан, ему придется долго ждать. Более того, после создания снэпшота веб-сервису, который базируется на сервере, нужно будет произвести геометрические расчеты — это тоже достаточно трудоемкий и длительный процесс. Чтобы не делать все эти операции на сервере, мы выносим все вычисления на отдельную мощную машину и даем возможность сотруднику, загружающему документацию на сервер, сразу сгенерировать все снэпшоты и всю геометрию после загрузки публикации на портал или по расписанию, которое ему удобно.

TDE 3D — редактор технической графики на базе ядра C3D, фото 11
Рис. 10. Последовательная загрузка моделей

Для отображения снэпшотов мы показываем разные модели. Сначала мы осуществляли это с помощью последовательной загрузки. Иными словами, сначала мы смотрим одну модель, а потом, когда пользователь выбирает другой снэпшот, мы загружаем для него другую модель. В этом случае пользователь сталкивается с некоторой задержкой, необходимой для того, чтобы браузер запросил сервера новой модели и отобразил модель в браузере. Это не всегда удобно.

TDE 3D — редактор технической графики на базе ядра C3D, фото 12
Рис. 11. Параллельная загрузка моделей

Для решения этой задачи мы реализовали параллельную загрузку. Мы отображаем пользователю снэпшот по умолчанию, а после того как он полностью отображен, создаем дополнительные представления, в которых начинаем загрузку дополнительных снэпшотов. Контейнеры с этими представлениями скрыты CSS-стилями и не отображаются, пока пользователь не переключился на них. Соответственно, применение новых CSS-стилей происходит почти моментально. Пользователь не ждет загрузки новой модели, нового снэпшота. Таким образом мы устраняем проблему с трафиком, так как модель не надо загружать в браузер повторно. Все уже загружено, и нужно только переключаться. Следовательно, мы улучшаем пользовательский опыт, делая приложение более отзывчивым.

Дмитрий Бахметьев, Руководитель отдела разработки программного обеспечения, ИТОРУМ
Дмитрий Бахметьев
Руководитель отдела разработки программного обеспечения
ИТОРУМ

Илья Баянов, Ведущий инженер-программист, ИТОРУМ
Илья Баянов
Ведущий инженер-программист
ИТОРУМ
Поделиться материалом
Вверх