ObjectARX, AutoCAD. Среда программирования библиотеки C++

Расширенные данные примитива


Регистрация Расширенных Данных Примитива (EED) поддержана в ObjectDBX. Несколько незначительных различий от ObjectARX API существуют, однако. Чтобы использовать EED, приложение должно быть зарегистрировано с базой данных. В ObjectARX API, acdbRegApp () функция наиболее вероятно использовалась бы. Этот интерфейс не поддержан в ObjectDBX, так что альтернативные функции для регистрации приложения и имеющий дело resbuf цепочки описаны здесь.

Чтобы регистрировать ваше приложение, используйте функции AcDbDatabase, чтобы получить regapp таблицу, и добавлять запись:

registerApplication(AcDbDatabase* pDatabase)

{

AcDbRegAppTable *pRegAppTable;

AcDbObjectId blockId;

if (pDatabase->getRegAppTable(pRegAppTable, AcDb::kForWrite) == Acad::eOk)

{

AcDbRegAppTableRecord *pRecord = new AcDbRegAppTableRecord;

if (pRecord)

{

pRecord->setName("ACDBTEST_APP"); // For example

if (pRegAppTable->add(blockId, pRecord) == Acad::eOk)

pRecord->close();

else

delete pRecord;

}

pRegAppTable->close();

}

}

EED добавлен к AcDbEntity как

resbuf цепочка. При использовании resbuf типы, которые требуют, указатели (подобно resval.rstring), убеждаются, что разместили указатель с acdbAlloc () функция, и удалили это с acdbFree () функция ( Объявляемый в dbmain.h файле).



Содержание раздела