Свойство конвертера IConvertorProperty3D

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

Методы, которые вызываются при экспорте в любой формат, отвечают за выдачу ряда сведений о документе в целом, о системе координат, относительно которой геометрическая модель должна быть ориентирована, а также запрашивают, следует ли принудительно трансформировать объекты обменного формата так, чтобы сохранялась их форма и взаимное расположение, но использовались только правые системы координат и масштабный множитель единиц длины, на который при экспорте умножаются все линейные размеры:

bool GetPropertyString( MbeConverterStrings nString, std::string & propertyString );

MbPlacement3D GetOriginLocation();

bool ReplaceLocationsToRight() (для форматов с левыми системами координат);

double LengthUnitsFactor().

Метод

void SetIoPermission( MbeIOPermiss nPermission, bool setF )

позволяет задавать фильтр передаваемых объектов.

Метод, который вызывается при импорте из любого формата и служит для запроса масштабного коэффициента единиц длины в пользовательской модели, на который умножаются все линейные размеры:

double AppLengthUnitsFactor();

Метод, который вызывается при импорте из формата STEP и служит для управления импортом атрибутов вставок:

virtual bool ImportInstanceAttributes() const { return true; }

Метод, который вызывается при импорте из форматов SAT, X_T, X_B, STEP и IGES, а также при импорте проприетарных форматов через плагины, выдает запрет или разрешение на автоматическую сшивку отдельных поверхностей в тела и указывает точность сшивки:

bool EnableAutoStitch( double& stitchPrecision );

При импорте из IGES и SAT вызывается метод, который разрешает или запрещает конвертеру обратиться к запросчику:

bool CanShowMessages();

При экспорте в формат STL вызывается метод, определяющий, будут ли данные предоставляться в текстовом или двоичном виде:

bool IsFileAscii();

При экспорте в STEP вызывается метод, имеющий реализацию по умолчанию и служащий для задания представления текста в элементах аннотации и прикладного протокола STEP, который будет использоваться:

eTextForm GetAnnotationTextRepresentation();

При экспорте в IGES вызывается метод, который определяет будет ли экспортироваться информация о топологии:

bool IsOutOnlySurfaces();

При экспорте в полигональные форматы (STL и VRML) вызываются методы, имеющие реализацию по умолчанию и управляющие параметрами расчёта триангуляции:

MbStepData TesselationParameters();
bool DualSeams();
void DualSeams( bool dSeams );

При экспорте в STEP и SAT вызывается метод, имеющий реализацию по умолчанию и возвращающий версию формата. Для задания версии рекомендуется использовать предопределенные значения.

long int GetFormatVersion();

При экспорте в формат ACIS вызывается метод, имеющий реализацию по умолчанию и управляющий удалением швов из циклов:

virtual bool ExportWithSeamRemoval() const { return false; }

Метод

virtual bool ImportMeshesWithTopology()

импортирует полигональные объекты как объекты с топологической информацией.

Метод

virtual bool RepairInconsistentMesh( MbRepairInconsistentMeshParams & )

включает постобработку сеток.

Геометрическое ядро C3D предоставляет стандартную реализацию интерфейса IConvertorProperty3D.

Класс ConvConvertorProperty3D представляет собой стандартную реализацию свойства конвертера. Свойство наследует интерфейс класса IConvertorProperty3D.

В своих полях, к которым открыт доступ, класс 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 – контейнер сообщений для пользователя во время импорта/экспорта.

Интерфейс IConvertorProperty3D и класс ConvConvertorProperty3D объявлены в файле conv_exchange_settings.h.

Преобразование кодировок

За преобразование кодировок отвечает интерфейс IC3DCharEncodingTransformer, реализацию которого возвращает метод GetUserCharEncodingTransformer(). Метод имеет штатные реализации:

  • IC3DCharEncodingTransformerUTF8 - преобразование по правилам utf-8;

  • IC3DCharEncodingTransformerWindows1251 – преобразование, соответствующее кодировке cp-1251 (кириллица Windows);

  • C3DCharEncodingTransformerLocale - преобразование по правилам заданной локализации;

  • IC3DCharEncodingTransformerStep - преобразование по нотации STEP.

Если преобразование явно не задано, то для формата STEP по умолчанию используется преобразование IC3DCharEncodingTransformerStep, а для остальных форматов C3DCharEncodingTransformerLocale.