Логотип сайта поддержки пользователей САПРО сайте поддержки пользователей САПР Translate to:

Reini Urban о AutoCAD2000

Я некоторое время тестировал Visual Lisp для AutoCAD 2000, включая некоторые доступные приложения.

Что новое в Visual Lisp для AutoCAD 2000 (кратко)

(1) Вы должны использовать Visual Lisp теперь!
Не имеется никакой опции, чтобы использовать дальше старый AutoLISP. Это имеет хорошие и плохие стороны. Смотри ниже. Пожалуйста ознакомьтесь с VLIDE.

(2) Проверка ошибок при загрузке:
При загрузке старого и содержащего ошибки кода AutoLISP будут отображаться ошибки или предупреждения c которыми Вы никогда не сталкивались прежде. Visual Lisp теперь компилирует весь код на лету. Это означает что все возможные ошибки или предупреждения будут обнаружены во время загрузки. Части ошибочного кода, которые ранее никогда не были обнаружены (например четыре аргумента IF, неправильный синтаксис COND, ...) или назначение значения защищенным символам (например. T, LAST) теперь сопровождаются предупреждениями или сообщениями об ошибках. Пожалуйста загрузите содержащие ошибки файлы в VLIDE, и проверьте / исправте их там.
( < Ctrl-Alt-C > "Check Code in editor")

(3) ACAD.LSP против ACADDOC.LSP
Старые файлы ACAD.LSP должны быть скопированы в ACADDOC.LSP. ACADDOC.LSP загружается, когда открывается новый документ. ACAD.LSP - загружается только когда начинается новый сеанс AutoCAD. Имеется опции для тех, кто не желает устанавливать это, но лучше создать ACADDOC.LSP для кода, который необходим на документ, а не на весь сеанс. Приложения, необходимые на сеанс, могут быть вызваны с помощью (arxload) или (startapp). Почти весь другой код может быть скопирован в ACADDOC.LSP.

(4) Вы больше не нуждаетсь в компиляции в ARX чего-либо.
Взамен Вы компилируете в VLX (Visual Lisp Extension), который имеет в основном те же самые функциональные возможности как старый Visual Lisp /Vital Lisp ARX, со cледующими отличиями:

VLX новый и следовательно совместим только на более новые версии (R16, ...) но как lisp-приложение, он намного более совместимый чем ARX приложение.

Так что Вы больше не нуждаетесь в ARX модулях! Это - новая возможность, не ошибка!

(5) Несовместимости AutoLISP - Visual LISP
Visual Lisp предназначен так же для устранения некоторых старых дефектов AutoLISP, касательно большего подобия стандартному Lisp. Также имеются некоторые технические причины для изменений. Наиболее общие проблемы следующие:

(5.1) Lisp-функций теперь атомы а не списки.
Вы будете должны использовать DEFUN-Q, чтобы избежать немедленной трансляции функций. Вы не можете просто изменять определения функций немедленно, изменяя список, и Вы не может видеть определение в командной строке. Используйте DEFUN-Q вместо defun для собственных определений *error* если Вы желаете изменять список *error* на леу (как например в старой подпрограмме обработки ошибок в bonus tools )

(5.2) Защищенных символов
Зарезервированные имена Visual Lisp теперь защищены, чтобы помочь Вам обходить переопределения символов. Это случалось часто с T или LAST. Вы можете изменять серьезность предупреждения в VLIDE (Tools- Environment Options - General - SETQ) к защищенным символам:

Вы можете захотеть изменить это "не предупреждать", если Вы действительно хотите переопределить некоторые функции системы или символы, но это не рекомендуется. ( Я один раз переопределял LOAD, чтобы сохранить имя файла в списке, но это невозможно для произвольных аргументов)

(6) Неописанные функций
Все еще имеются некоторые, но действительно не важные. PRAGMA - для настройка трансляции.

(7) Автономный VLIDE.EXE
Это не в настоящее время не поддерживается. Хотя технически это не такая большая задача. Имеется VL.TLB

(8) Быстродействие
Быстродействие - относительно такое как в Vital Lisp и Visual Lisp для R14. VLX загружают быстрее чем ARX, но зарузка больших файлов может быть дольше чем в обычном AutoLISP, потому что код компилируется на лету. Требуется меньшее количество памяти чем прежде.

(9) Обработки особых ситуаций
Имеются некоторые новые важные функции, позволяющие продолжение работы после ошибок:
vl-exit-with-value (для VLX в seperate namespaces только)
vl-catch-all-apply, vl-catch-all-error-message (для ошибок ActiveX)
В действительности они не обслуживают реальною обработку особых ситуаций (unwind-protect/catch/throw) но имеют по крайней мере немного это.

(10) Не имеется никакой функции, чтобы получить файловый путь загруженного VLX.
Прежде для этой цели применялся (arx) и (vl-exe-filename) Это было полезно для восстановления пути только из приложения, избегать жестко определенных конфигурационных файлов с путями к приложениям, или добавляение путей к путю поиска библиотек AutoCAD (AutoCAD Library Search path). Если VLX был загружен из пути, который не указан в пути поиска, приложение терпит крах. (vl-list-loaded-vlx) подобен (arx), но возвращает только имена, а не пути.

(11) Заменен (vl-export-symbol) на (vl-doc-export).
Заменен (vlisp-import-symbol) на (vl-doc-ref), при использовании seperate VLX Namespaces.


Reini Urban



Copyright © Сайт поддержки пользователей САПР by Victor Tkachenko