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



         

Метки примитива и их использования


AcdbHandEnt () функция отыскивает имя примитива с определенной меткой. Подобно именам примитива, метки уникальны в пределах рисунка. В отличие от имен примитива, метка примитива постоянна повсюду его жизни. ObjectARX приложения, которые управляют определенной базой данных, могут использовать acdbHandEnt () чтобы получить текущее имя примитива, который они должны использовать.

Следующий типовой кодовый фрагмент использует acdbHandEnt () чтобы получить имя примитива и распечатывать это.

char handle[17];

ads_name e1;

strcpy(handle, "5a2");

if (acdbHandEnt(handle, e1) != RTNORM)

acdbFail("No entity with that handle exists\n");

else

acutPrintf("%ld", e1[0]);

В одном сеансе редактирования частности, этот код мог бы распечатывать 60004722. В другом сеансе редактирования с тем же самым рисунком, это могло бы печатать полностью отличный номер. Но в обоих случаях, код обращается к тому же самому примитиву.

AcdbHandEnt () функция имеет дополнительное использование: примитивы, удаленные из базы данных (с acdbEntDel ()) не очищены, пока Вы не оставляете текущий рисунок (выходя Из AutoCAD или переключая к другому рисунку). Это означает, что acdbHandEnt () может возвращать названия{*имена*} удаленных примитивов, которые могут тогда быть восстановлены к рисунку вторым запросом к acdbEntDel ().

Примитивы в рисунках перекрестно ссылались с внешних ССЫЛОК, присоединяются не фактически часть текущего рисунка; их метки неизменны, и нельзя обращаться acdbHandEnt (). Однако, когда рисунки объединены посредством ВСТАВКИ, ВСТАВЬТЕ *,  XREF Связывает (XBIND), или частичный DXFIN, метки примитивов в рисунке прихода потеряны, и входящие примитивы назначены новые значения маркера{*дескриптора*} гарантировать, что каждый маркер{*дескриптор*} в рисунке оригинала остается уникальным.

ОБРАТИТЕ ВНИМАНИЕ, что расширенные данные могут включать метки примитива, чтобы сохранить относительные структуры в рисунке. В некоторых обстоятельствах, эти метки требуют трансляции или обслуживания. См. “ Использование метки в Расширенных Данных ” на странице 240.




Содержание  Назад  Вперед