Принципы работы конвертера

Работа конвертера предполагает использование интерфейсов, которые можно разделить на две группы. В первую входят интерфейсы, которые имеют реализацию на стороне C3D, во вторую — те интерфейсы, которые должны быть реализованы пользователем. Кроме того, геометрическое ядро C3D предоставляет стандартную реализацию всех интерфейсов, необходимых для обмена данными.

Интерфейсы соответствуют следующим понятиям:

  • Конвертер (интерфейс IConvertor3D) — специальный объект, который используется для передачи данных. Реализован на стороне C3D.

  • Свойства конвертера (интерфейс IConvertorProperty3D) — служат для передачи настроек обмена в конвертер. Интерфейс имеет стандартную реализацию.

  • Документ (интерфейс ItModelDocument) — объект, которому соответствует передаваемая модель в целом. Интерфейс имеет стандартную реализацию.

  • Деталь (интерфейс ItModelPart) и сборка (интерфейс ItModelAssembly) — части модели, которые могут быть представлены как детали или как сборочные единицы.

  • Вставка (интерфейс ItModelInstance) — объект, отвечающий за позиционирование и/или повторное использование компонента в модели.

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

Внутри конвертера осуществляется преобразование внутренней модели, исходя из специфики формата. Например, у детали может быть зеркальное исполнение, и этому соответствует левая система координат компонента, а в формате STEP левые системы координат не предусмотрены. Также в формате STEP визуальные свойства нельзя назначить на вставку детали и для перекрашенных деталей создаются дубли. Основных критериев преобразования два — левая система координат и визуальные свойства (в каких‑то случаях допустимо назначать визуальные свойства на вставке, например цвет, а в каких‑то — нет).

Схема преобразования между моделями данных базируется на двух сущностях: