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

       

Имена примитивов и наборов выбора


В AutoLISP имена примитивов и наборов выбора - пары длинных целых чисел.

ObjectARX

сохраняет этот стандарт,  определяя такие имена как тип массива, следующим образом:

typedef long ads_name[2];

Как с ads_point переменными, ads_name переменные всегда проходят ссылкой, но должен быть назначенный элемент элементом.

Вы можете также копировать примитив или имя набор выбора,  вызывая ads_name_set () макрокоманда. Как с ads_point_set () и функциями ObjectARX, результат - второй параметр к макрокоманде.

Следующие типовые кодовые наборы имя newname, чтобы равняться oldname.

ads_name oldname, newname;

if (acdbEntNext(NULL, oldname) == RTNORM)

ads_name_set(oldname, newname);

ОБРАТИТЕ ВНИМАНИЕ на макрокоманду This, подобно ads_point_set () макрокоманда, определен по-другому, в зависимости от того, действительно ли символ __ STDC __ (который замещает стандарт C),  определен. Стандартная версия C ads_name_set () требует, чтобы ваша программа включила string.h.

Ads_name_equal () макрокоманда сравнивает названия{*имена*} в следующем примере:

if (ads_name_equal (oldname, newname))

...

Чтобы назначать null значение имени, вызовите ads_name_clear () макрокомандой, и испытанием на null примитив или имя набора выбора с макрокомандой ads_name_nil().

Следующий типовой код очищает набор oldname в предыдущем примере:

Ads_name_clear (oldname);

И следующий код проверяет,является ли имя NULL:

Если (ads_name_nil (oldname))

...

ObjectARX создает следующий тип данных для ситуаций, которые требуют, чтобы имя было указателем скорее чем массив:

typedef long *ads_namep;



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