Принципы работы конвертера
Работа конвертера предполагает использование интерфейсов, которые можно разделить на две группы. В первую входят интерфейсы, которые имеют реализацию на стороне C3D, во вторую — те интерфейсы, которые должны быть реализованы пользователем. Кроме того, геометрическое ядро C3D предоставляет стандартную реализацию всех интерфейсов, необходимых для обмена данными.
Интерфейсы соответствуют следующим понятиям:
Конвертер (интерфейс IConvertor3D) — специальный объект, который используется для передачи данных. Реализован на стороне C3D.
Свойства конвертера (интерфейс IConvertorProperty3D) — служат для передачи настроек обмена в конвертер. Интерфейс имеет стандартную реализацию.
Документ (интерфейс ItModelDocument) — объект, которому соответствует передаваемая модель в целом. Интерфейс имеет стандартную реализацию.
Деталь (интерфейс ItModelPart) и сборка (интерфейс ItModelAssembly) — части модели, которые могут быть представлены как детали или как сборочные единицы.
Вставка (интерфейс ItModelInstance) — объект, отвечающий за позиционирование и/или повторное использование компонента в модели.
Обобщающим понятием детали и сборки является компонент. Предполагается, что компонент может быть минимальной единицей, которой может соответствовать отдельный файл, с которым работает конечное приложение. Использование компонентов и вставок позволяет сформировать дерево модели, в котором компоненты могут быть многократно использованы.
Внутри конвертера осуществляется преобразование внутренней модели, исходя из специфики формата. Например, у детали может быть зеркальное исполнение, и этому соответствует левая система координат компонента, а в формате STEP левые системы координат не предусмотрены. Также в формате STEP визуальные свойства нельзя назначить на вставку детали и для перекрашенных деталей создаются дубли. Основных критериев преобразования два — левая система координат и визуальные свойства (в каких‑то случаях допустимо назначать визуальные свойства на вставке, например цвет, а в каких‑то — нет).
Схема преобразования между моделями данных базируется на двух сущностях:
типы элементов (MbAssembly или формосодержащие MbSolid, MbMesh, MbWireFrame, MbSpaceInstance, MbPlaneInstance);
атрибуты (в первую очередь MbProductInfo).