.. role:: blue :class: blue Импорт конфигураций модели ========================== .. _Model_Configuration_Import: .. версия ядра: 118061 При импорте моделей формата c3d, а также моделей доступных через плагины SolidWorks, NX, Creo, Inventor, Solid Edge есть возможность прочитать модель в разных конфигурациях (исполнениях). Импорт конфигураций из Catia не реализован, поскольку конфигурации в Catia сохранены в параметрическом виде, который C3D Converter не поддерживает. Существует два способа задания выборщика конфигураций: - Передать указатель на :blue:`IConfigurationSelector` в метод :blue:`LoadForeignReader`\() при загрузке плагина для последующего использования в методах импорта через явно указанный плагин. - Использовать метод :blue:`IConverter3D::SetConfigurationSelector`\() для последующего использования в методах импорта через автоматически подгруженный плагин. Для работы с этими методами необходимо реализовать интерфейс :blue:`IConfigurationSelector` (*conv_requestor.h*). **Методы интерфейса IConfigurationSelector**: .. code-block:: cpp // Добавить конфигурацию для выбора пользователем. 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; - Без явного указания :blue:`GetConfiguration`\() будет загружена конфигурация по умолчанию, заданная через :blue:`SetActiveConfiguration`\(). - Методы :blue:`AddEmptyConfiguration`\() и :blue:`AddNeedsUpdateConfiguration`\() носят прежде всего информативный характер, т.к. в отличие от метода :blue:`AddConfiguration`\() они не позволяют получить полноценную модель в силу ограничений сохранения модели из исходной САПР.