Импорт конфигураций модели

При импорте моделей формата c3d, а также моделей доступных через плагины SolidWorks, NX, Creo, Inventor, Solid Edge есть возможность прочитать модель в разных конфигурациях (исполнениях). Импорт конфигураций из Catia не реализован, поскольку конфигурации в Catia сохранены в параметрическом виде, который C3D Converter не поддерживает.

Существует два способа задания выборщика конфигураций:

  • Передать указатель на IConfigurationSelector в метод LoadForeignReader() при загрузке плагина для последующего использования в методах импорта через явно указанный плагин.

  • Использовать метод IConverter3D::SetConfigurationSelector() для последующего использования в методах импорта через автоматически подгруженный плагин.

Для работы с этими методами необходимо реализовать интерфейс IConfigurationSelector (conv_requestor.h).

Методы интерфейса IConfigurationSelector:

// Добавить конфигурацию для выбора пользователем.
virtual void AddConfiguration( const c3d::string_t & configurationName ) = 0;

// Добавить конфигурацию для выбора пользователем, не содержащую модель.
virtual void AddEmptyConfiguration( const c3d::string_t & configurationName )
{
    AddConfiguration( configurationName );
}

// Добавить конфигурацию для выбора пользователем, требующую обновления.
virtual void AddNeedsUpdateConfiguration( const c3d::string_t & configurationName )
{
    AddConfiguration( configurationName );
}

// Указать индекс активной конфигурации.
virtual void SetActiveConfiguration( const size_t index ) = 0;

// Получить индекс конфигурации, выбранной пользователем.
virtual size_t GetConfiguration() const = 0;

// Индекс конфигурации для прекращения чтения по запросу пользователя.
static const size_t configurationIdToCancel = SYS_MAX_T;
  • Без явного указания GetConfiguration() будет загружена конфигурация по умолчанию, заданная через SetActiveConfiguration().

  • Методы AddEmptyConfiguration() и AddNeedsUpdateConfiguration() носят прежде всего информативный характер, т.к. в отличие от метода AddConfiguration() они не позволяют получить полноценную модель в силу ограничений сохранения модели из исходной САПР.