Команда и Функциональные Списки Обращения
Наконец, acutBuildList () вызван в сочетании с acedCmd (), который берет список буфера результата, чтобы вызвать AutoCAD, командует, и с acedInvoke (), который вызывает внешнюю функцию от различного
ObjectARX-приложение.
Следующий типовой кодовый фрагмент вызывает acutBuildList () и acedInvoke () чтобы вызвать команду RESET, определенную приложением выборки gravity.c:
struct resbuf *callist, *results = NULL;
callist = acutBuildList(RTSTR, "c:reset", 0);
if (acedInvoke(callist, &results) == RTERROR)
acdbFail("Cannot run RESET -- GRAVITY program may not be loaded\n");
acutRelRb(callist);
acutRelRb(results);
Эксклюзивные типы для расширенных данных
Расширенные данные (xdata) могут включать двоичные данные, организованные в куски переменной длины. Они обработаны структурой ads_binary, следующим образом:
struct ads_binary { // Binary data chunk structure
short clen; // Length of chunk in bytes
char *buf; // Binary data
};
Значение clen поля должно быть в диапазоне от 0 до 127. Если приложение требует больше чем 127 байтов двоичных данных, это должно организовать данные в множественные куски.
С Выпуском 13, DXF представление таблицы идентификаторов может включать расширенные данные примитива. Xdata
возвращен как метка.
ОБРАТИТЕ ВНИМАНИЕ, что не имеется никакого механизма для возвращения двоичных данных к AutoLISP. Двоичные куски можно пропускать к другим внешним функциям посредством acedInvoke (), но только, когда они принадлежат группам (1004 в пределах расширенных данных примитива.
Вы не можете проходить, изолировал двоичные куски.
Xdata может также включать длинные целых числа. Ads_u_val объединение resval поля буфера результатов включает, и ads_binary и длинного члена для обработки расширенных данных примитива.
ОБРАТИТЕ ВНИМАНИЕ, что не имеется никакого механизма для возвращения длинного целого числа к AutoLISP. Длинные целых числа можно пропускать к другим внешним функциям посредством acedInvoke (), но только, когда они принадлежат группам (1071 в пределах расширенных данных примитива. В AutoLISP, 1071 группы поддержаны как реальные значения.