ADN Open CIS
Сообщество программистов Autodesk в СНГ

04/12/2013

Передача списка значений в ObjectARX из Lisp приводит к ошибке

Вопрос:

Передача списка значений в ObjectARX-функцию из Lisp приводит к ошибкам в том случае, когда некоторые значения целых чисел (Пример: 5011, 25111) являются частью списка. Как этого избежать?

Ответ:

Некоторые числовые значения интерпретируются как DXF-коды, что и приводит к исключениям.

Простейший способ обойти эту ситуацию – передавать вместо целых чисел плавающие, как показано ниже:

(myLispCallableTestFunc '(5011.0 2 3 4))

Другой способ – передавать целые числа как отдельные списки. Эти списки можно будет объединить уже внутри ObjectARX-функции, которая вызывается из LISP. Пример:

(myLispCallableTestFunc '((5011) (2) (3) (4)))

Источник: http://adndevblog.typepad.com/autocad/2012/09/passing-list-of-values-to-an-objectarx-function-using-lisp-returns-error.html

Примечание переводчика: Это всё в полной мере касается передаче аргументов из LISP в .NET-функцию.

Обсуждение: http://adn-cis.org/forum/index.php?topic=373

Опубликовано 04.12.2013