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

         

Xrecord Объекты


Xrecord объект - встроенный объектный класс с именем DXF “XRECORD”, который сохраняет и управляет произвольными потоками данных, представ внешне в результате буферизуют список, составленный из групп DXF с “ объект нормали ” группы (то есть не - xdata коды группы), в пределах от 1 до 369.

ПРЕДУПРЕЖДЕНИЕ! Xrecord объект разработан{*предназначен*} в пути, который не будет оскорблять более ранние версии AutoCAD; однако, xrecord объект исчезнет при создании DXF файла от предварительного выпуска 13c4 уровень AutoCAD.

Xrecord объекты - универсальные объекты, предназначенные для использования приложениями ObjectARX и AutoLISP. Этот класс позволяет приложениям создавать и сохранять произвольные объектные структуры произвольных списков буфера результата не-графической информации, полностью отделяются от примитивов. Корневой владелец для всех определенных приложением объектов является или словарью имен объектов, которая принимает любой тип AcDbObject как вход, включая AcDbXrecord, или словарь расширения любого объекта.

Приложения, как ожидается,  будут использовать уникальные названия{*имена*} входа в словари имен объектов. Логика использования словари имен объектов или имени входа словаря расширения{*продления*} подобна таковому имени REGAPP. Фактически, REGAPP названия{*имена*} совершенен для использования как названия{*имена*} входа при добавлении в конец определенных приложением объектов к базе данных или специфическому объекту.

Использование xrecord объектов представляет существенное упрощение относительно текущей практики назначения xdata к примитивам. Поскольку xrecord объект не должен быть связан с примитивом, Вы больше не должны создать фиктивные примитивы (фиктивные примитивы часто использовались, чтобы обеспечить большее количество участка памяти для xdata), или примитивов на закрепемых уровнях.

Приложения теперь способны делать следующее:

  • Защищают информацию от неразборчивой чистки или размораживания уровней, который является всегда угрозой неграфической информации, сохраненной в data.

  • Используют новые поля (330-369 ссылки / указателя монопольного использования объекта, чтобы обслужить{*поддержать*} внутренние ссылки объекта базы данных. Произвольные значения метки полностью освобожденны от механики трансляции объекта ID. Это оппозиционно настроено в отношении 1005 xdata групп, которые оттранслированы в некоторых случаях, но не в других.


  • Остаются незатронутым 16КБ в объект xdata предел способности{*вместимости*}. Этот объект может также использоваться вместо xdata на определенных примитивах и объектах, если один так пожелания, с пониманием, что независимо от того, где Вы сохраняете xrecord объекты, они не имеют никакого встроенного предела размера, другого чем предел 2 ГБАЙТА, наложенных подписанным 32-разрядным целочисленным диапазоном.


  • В случае объектно - определенного состояния, xrecord объекты хорошо удовлетворены для сохранения больших количеств сохраненной информации, в то время как xdata лучше удовлетворенный для меньших количеств данных.

    При монтаже иерархии xrecord объектов (добавление монопольного использования или ссылки указателя к объекту), тот объект должен уже существовать в базе данных, и, таким образом, иметь законное имя примитива. Поскольку acdbEntMake () не возвращает имя примитива, и acdbEntLast () только признает графические объекты, Вы должны использовать acdbEntMakeX () если Вы ссылаетесь на неграфические объекты.

    AcdbEntMakeX () функция возвращает имя примитива объекта, добавленного к базе данных (или графический или неграфический). Начальный Выпуск 13 выполнения acdbEntMake () только поддержанные объекты, чей класс диктовал его определенный объект контейнера владельца в текущем рисунке (типа входов таблицы идентификаторов, весь снабженный Выпуск 13 типов примитива, и объекты словаря), и зарегистрировал новый объект с его владельцем. Эти функции продолжат делать это для того же самого набора встроенных объектных классов, включая примитивы. Для xrecords и всех классов пользователя, эти функции добавят объект к базе данных, оставляя это до приложения, чтобы установить его связи{*ссылки*} монопольных использований снова до словари имен объектов. AcdbEntMakeX () функция добавляет объект к базе данных для всех типов объекта, включая,  которые идут С AutoCAD. Так, даже при использовании этой функции на существующих типах примитива, ваша программа ответствена за установку монопольного использования.


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