Вы нашли полезный для себя код на Лиспе который делает различные штуки и хотите его использовать. Как заставить его работать? Можно выделить 3 шага.
1. Сохранение программного кода на своем компьютере.
2. Загрузка файла в AutoCAD.
3. Запуск приложения (Лиспа).
Примечание: AutoLISP программы могут быть запущены только на полной версии Автокада, они не работают под AutoCAD LT. (исключая случаи загрузки дополнительных приложений типа LT Extender и ему подобных, которые специально разработаны для запуска lisp и (или) arx приложений в среде AutoCAD LT.)
Если код выложен на сайте, а не отдельным файлом, делаем так, с помощью курсора выделяем этот код и копируем его, нажав правую кнопку мыши и выбрав пункт Копировать (или Ctrl+C).
Запускаем "Блокнот" и вставляем наш код с помощью меню Правка → Вставить (или Ctrl+V). Получим примерно такое:
И сохраняем файл. Файл можно назвать, как вам нравится, но расширение у него должно быть .LSP. Правильнее (но не обязательно) будет назвать файл так же, как названа команда в найденном Вами коде. Команде всегда предшествует префикс C: после слова defun. В примере выше видно, что команду назвали OFF2, соответственно файл называем off2.lsp. Таким образом, мы можем избежать беспорядка, т.к. будем знать, что в файле off2.lsp находится команда OFF2.
Иногда в коде представлено несколько функций. Необходимо найти "главную". Такая функция либо имеет префикс С: либо сам автор кода уточняет как использовать. В случае нескольких "главных" имя файла не имеет никакой разницы.
Файл сохранили или скачали уже готовый и запускаем Автокад. Выбираем Сервис → AutoLISP → Приложения... (Tools → AutoLISP → Load) или набираем в командной строке _appload.
Мы должны увидеть диалоговое окно как представлено ниже:
И по порядку делаем так:
1. Перейдите к папке, куда Вы сохранили lisp файл.
2. Выберите файл, который Вы хотите загрузить из списка.
3. Нажмите кнопку Загрузить. (Если все прошло удачно, Вы должны увидеть надпись "off2.lsp успешно загружено")
4. Нажмите кнопку Закрыть для завершения команды.
Или еще проще загрузить lisp файл путем перетаскивания (drag-and-drop) иконки файла в графическое окно открытого документа Автокада.
В описании практически любого кода есть такая строка где написано (defun … и потом после нее чего-то там еще. Так вот то, что там написано и есть имя функции.
Если первыми символами являются C: то функция готова к вызову из командной строки. Если такого нет, то вызывать функцию надо, заключая ее имя в круглые скобки.
Т.е. если написано (defun c:test то в командной строке набираем test, а если (defun test то пишем все тоже самое в скобочках (test) все просто!
Как только lisp файл загружен, вызываем команду из командной строки. Команда вызывается по ее имени. В нашем примере необходимо набрать в командной строке OFF2.
Каждый раз набирать _appload для загрузки того или иного приложения не дело, да и файлов этих со временем накопится, проще будет организация свою библиотеку. Для начала условимся, что все наши файлы будем складывать в одну папку. Например, D:\MyLisp. Пропишем эту папку в путях доступа Автокада. Для этого выбираем Сервис → Настройка (Tools → Options) или набираем в командной строке _options. Переходим на закладку Файлы (Files) и раскрываем список Путь доступа к вспомогательным файлам (Support File Search Path).
Мы должны увидеть диалоговое окно, как представлено ниже:
Используйте следующую последовательность, чтобы прописать папку в путях доступа:
1. Нажмите кнопку Добавить.
2. Нажмите кнопку Обзор и выберите целевую папку (в нашем случае, D:\MyLisp).
3. Путь к папке должен появиться в диалоговом окне.
4. Нажмите кнопку OK для завершения команды.
Теперь наша папка прописана в путях доступа Автокада. Что это нам дает? Мы можем загружать наши файлы не указывая конкретного пути, а только имя файла.
Мы можем набрать в командной строке (load "<имя файла>") для загрузки необходимого кода, например (load "off2"). Заметьте, что добавлять расширение .lsp не обязательно, хотя и не запрещается.
А самое главное - это позволит нам создать панели с кнопками для загрузки той или иной программы. Кнопка будет иметь следующее содержание:
^C^C(if (null C:<команда>)(load "<файл>"));<команда>;
В нашем случае: ^C^C(if (null C:OFF2)(load "off2"));OFF2;
Вместо текста <команда> мы должны будем подставлять имя нужной нам команды, а вместо текста <файл> имя того файла, в котором эта команда сохранена. Помните, что файл должен иметь расширение .lsp.
Полезно. Как создать свою кнопку и вывести на свою панель команд читаем здесь.
Если информация была полезной