.. role:: blue :class: blue Свойство конвертера IConvertorProperty3D ========================================= .. _IConvertorProperty3D_Converter_Property: Свойство конвертера :blue:`IConvertorProperty3D` является одним из параметров методов обмена данными. Поскольку один и тот же интерфейс :blue:`IConvertorProperty3D` используется для управления работой конвертеров всех форматов, то он содержит как методы, общие для всех форматов, так и специфичные для того или иного формата. Кроме того, отличается набор данных, которые управляют работой экспорта и импорта. Методы, которые вызываются при экспорте в любой формат, отвечают за выдачу ряда сведений о документе в целом, о системе координат, относительно которой геометрическая модель должна быть ориентирована, а также запрашивают, следует ли принудительно трансформировать объекты обменного формата так, чтобы сохранялась их форма и взаимное расположение, но использовались только правые системы координат и масштабный множитель единиц длины, на который при экспорте умножаются все линейные размеры: .. code-block:: cpp bool GetPropertyString( MbeConverterStrings nString, std::string & propertyString ); MbPlacement3D GetOriginLocation(); bool ReplaceLocationsToRight() (для форматов с левыми системами координат); double LengthUnitsFactor(). Метод .. code-block:: cpp void SetIoPermission( MbeIOPermiss nPermission, bool setF ) позволяет задавать фильтр передаваемых объектов. Метод, который вызывается при импорте из любого формата и служит для запроса масштабного коэффициента единиц длины в пользовательской модели, на который умножаются все линейные размеры: .. code-block:: cpp double AppLengthUnitsFactor(); Метод, который вызывается при импорте из формата STEP и служит для управления импортом атрибутов вставок: .. code-block:: cpp virtual bool ImportInstanceAttributes() const { return true; } Метод, который вызывается при импорте из форматов SAT, X_T, X_B, STEP и IGES, а также при импорте проприетарных форматов через плагины, выдает запрет или разрешение на автоматическую сшивку отдельных поверхностей в тела и указывает точность сшивки: .. code-block:: cpp bool EnableAutoStitch( double& stitchPrecision ); При импорте из IGES и SAT вызывается метод, который разрешает или запрещает конвертеру обратиться к запросчику: .. code-block:: cpp bool CanShowMessages(); При экспорте в формат STL вызывается метод, определяющий, будут ли данные предоставляться в текстовом или двоичном виде: .. code-block:: cpp bool IsFileAscii(); При экспорте в STEP вызывается метод, имеющий реализацию по умолчанию и служащий для задания представления текста в элементах аннотации и прикладного протокола STEP, который будет использоваться: .. code-block:: cpp eTextForm GetAnnotationTextRepresentation(); При экспорте в IGES вызывается метод, который определяет будет ли экспортироваться информация о топологии: .. code-block:: cpp bool IsOutOnlySurfaces(); При экспорте в полигональные форматы (STL и VRML) вызываются методы, имеющие реализацию по умолчанию и управляющие параметрами расчёта триангуляции: .. code-block:: cpp MbStepData TesselationParameters(); .. code-block:: cpp bool DualSeams(); .. code-block:: cpp void DualSeams( bool dSeams ); При экспорте в STEP и SAT вызывается метод, имеющий реализацию по умолчанию и возвращающий версию формата. Для задания версии рекомендуется использовать предопределенные значения. .. code-block:: cpp long int GetFormatVersion(); При экспорте в формат ACIS вызывается метод, имеющий реализацию по умолчанию и управляющий удалением швов из циклов: .. code-block:: cpp virtual bool ExportWithSeamRemoval() const { return false; } Метод .. code-block:: cpp virtual bool ImportMeshesWithTopology() импортирует полигональные объекты как объекты с топологической информацией. Метод .. code-block:: cpp virtual bool RepairInconsistentMesh( MbRepairInconsistentMeshParams & ) включает постобработку сеток. Геометрическое ядро C3D предоставляет стандартную реализацию интерфейса :blue:`IConvertorProperty3D`. Класс :blue:`ConvConvertorProperty3D` представляет собой стандартную реализацию свойства конвертера. Свойство наследует интерфейс класса :blue:`IConvertorProperty3D`. В своих полях, к которым открыт доступ, класс :blue:`ConvConvertorProperty3D` хранит следующую информацию: - **fileName** -- путь к файлу обменного формата (по умолчанию пустая строка); - **fileASCII** -- признак экспорта в текстовый файл STL (по умолчанию *true*); - **formatVersion** -- версия формата при экспорте (по умолчанию EXPORT_DEFAULT); - **exportIGESTopology** -- флаг экспорта топологии в формат IGES (по умолчанию *true*); - **ioPermission** -- фильтр объектов по типам (обеспечивает разрешение экспортировать и импортировать объекты любого типа); - **propertyStrings** -- особые сведения о документе (пустой контейнер); - **annotTextReprSTEP** -- представление текста аннотационных элементов (по умолчанию exf_TextOnly); - **originLocation** -- локальная система координат модели; - **enableAutostitch** -- флаг включения автосшивки при импорте модели (по умолчанию *true*); - **autostitchPrecision** -- точность сшивки граней (по умолчанию 0.3); - **tesseleationStepData** -- параметры триангуляции; - **showMessages** -- управление обращением к запросчику (по умолчанию *false*); - **dualSeams** -- флаг сохранения совпадающих точек швов (для конвертера STL и VRML); - **lengthUnitsFactor** -- масштабный коэффициент единиц длины при импорте и экспорте; - **appUnitsFactor** -- масштабный коэффициент единиц длины модели пользовательского приложения; - **logRecords** -- контейнер сообщений для пользователя во время импорта/экспорта. Интерфейс :blue:`IConvertorProperty3D` и класс :blue:`ConvConvertorProperty3D` объявлены в файле *conv_exchange_settings.h*. **Преобразование кодировок** За преобразование кодировок отвечает интерфейс :blue:`IC3DCharEncodingTransformer`, реализацию которого возвращает метод :blue:`GetUserCharEncodingTransformer`\(). Метод имеет штатные реализации: - IC3DCharEncodingTransformerUTF8 - преобразование по правилам utf-8; - IC3DCharEncodingTransformerWindows1251 – преобразование, соответствующее кодировке cp-1251 (кириллица Windows); - C3DCharEncodingTransformerLocale - преобразование по правилам заданной локализации; - IC3DCharEncodingTransformerStep - преобразование по нотации STEP. Если преобразование явно не задано, то для формата STEP по умолчанию используется преобразование :blue:`IC3DCharEncodingTransformerStep`, а для остальных форматов :blue:`C3DCharEncodingTransformerLocale`.