Урок 1. Редактор Visual LISP.

В этом уроке мы познакомимся с интерфейсом редактора Visual LISP, который является основным средством для написания программ AutoLisp.

AutoLisp – язык программирования, при помощи которого вы можете создавать новые пользовательские программы для AutoCAD, повышая тем самым его производительность.

Структура программы на языке AutoLisp:

  • Каждая программа содержит одну или несколько функций AutoLisp.
  • Любая функция начинается с открывающейся скобки.
  • После открывающейся скобки следует имя функции.
  • Если у функции есть аргументы, они следуют после имя функции.
  • Для разделения компонентов внутри скобок используют пробелы и кавычки.
  • Заканчивается функция закрывающейся скобкой.

Пример арифметической функции на AutoLisp:

(+ 10 5) – читается: сложить десять с пятью.

+ — имя функции (следует сразу после открывающей скобки);

10 и 5 – аргументы (следуют после имя функции; после последнего аргумента стоит закрывающая скобка)

Основным средством для написания программ на AutoLisp служит редактор Visual Lisp, который в первые появился в Автокад 2000. В нем присутствует развитая среда программирования с инструментами поиска ошибок. Редактор  Visual Lisp интегрирован в Автокад и запускается только из активного окна.

Запустить его можно набрав в командной строке «VLISP» («VLIDE») и нажав клавишу <Enter>.  Или на ленте выбираем вкладку «Управление» и на панели «Приложение» щелкаем на пункте «Редактор Visual Lisp». См. Рис. 1.

Редактор Visual LISP

Рис. 1. Запуск редактора Visual LISP

Редактор Visual Lisp включает  в себя четыре окна. См. Рис. 2:

Редактор Visual LISP

Рис. 2.   Окна редактора Visual LISP

  • Окно текстового редактора. В этом окне мы будем набирать программу.
  • Окно «Консоль Visual Lisp». В нем можно вводит имена переменных и проверять фрагменты кода.
  • Окно «Трассировка». Используется для поиска ошибок.
  • Окно «Сообщения сборки». Вывод результат проверки содержимого окна текстового редактора. 

Текст написаный в текстовом редакторе показывается с использованием различных цветов. Цвета текста описаны в таблице №1.

Таблица №1

Коричневый на сером фоне  Комментарии, которые начинаются точкой с запятой                   (; комментарий)
Цвет Область применения
Синий Функции AutoLISP  (DEFUN, setq)
Пурпурный Последовательность символов, находящихся в кавычках («_Line»)
Черный Пользовательская информация. Имена переменных и пользовательских функций.
Зелёный Целые числа (10 5)
Бирюзовый Вещественные числа, которые имеют десятичную точку              (27.7 15.9)

Перед тем, как приступить к написанию программы, давайте изучим панели инструментов.

 Обзор панелей инструментов Visual Lisp

В редактор Visual Lisp входят пять панелей инструментов:

  • Стандартная
  • Инструменты
  • Поиск
  • Отладка
  • Вид

 

Панель инструментов «Стандартная»

Редактор Visual LISP

Рис. 3. Панель инструментов «Стандартная»

Первые девять кнопок соответствуют аналогичным кнопкам других приложений Windows. См. Рис. 3. Кнопка «Дописать слово» дает возможность редактору Visual Lisp дописать начатое вами слова.

Откройте новый файл, наберите «de» и нажмите на кнопку «Дописать слово» (или нажмите на клавиатуре сочетание клавиш <Ctrl> + <Shift> + <Space>). Visual Lisp допишет слово до «defun». Далее наберите «get» и снова нажмите на кнопку «Дописать слово». Visual Lisp выдаст список возможных вариантов дописывания слова. В этот список входят имя, встроенных в Visual Lisp, стандартных функции. См. Рис. 4.

Редактор Visual LISP

Рис. 4. Кнопка «Дописать слово»

Панель инструментов «Инструменты»

Редактор Visual LISP

Рис. 3. Панель инструментов «Инструменты»

На панели «Инструменты» расположены следующие кнопки см. Рис. 5:

  • «Загрузить активное окно редактора» — загружает в AutoCAD каждую строчку окна редактора, если в ней нет ошибок.
  • «Загрузка выделенного фрагмента» —  загружает только выделенный текст.
  • «Проверить содержимое окна редактора» — проверяет структуру всего содержимого окна. Результат проверки выводится в окне «Сообщения сборки».
  • «Проверка выделенного фрагмента» — проверяет структуру выделенного текста.
  • «Форматировать содержимое окна редактора» — форматирует весь текст в окне в соответствиями с правилами, которые вы можете менять. Форматирование меняет внешний вид программы, делает ее более читабельной, и не влияет на ее работу. На Рис. 6. показан не форматированный текст. 
Редактор Visual LISP

Рис. 6. Не отформатированный текст

Щелкните мышкой внутри окна (сделайте текстовое окно активным) и нажмите кнопку «Форматировать содержимое окна редактора». Текст будет отформатирован см. Рис. 7.

Редактор Visual LISP

Рис. 7. Отформатированный текст

  • «Форматирование выделенного фрагмента» — форматирует только выделенный текст.
  • «Закомментировать блок» — добавляет точку с запятой в начало выделенных строк. Visual Lisp воспринимает такие строки как комментарии и они не влияют на работу программы.
  • «Раскомментировать блок» — отменяет предыдущую команду, т. е. убирает из начало строк точку с запятой. После этого Visual Lisp воспринимает эти строки, как часть программы.
  • «Справка» — служит для получения справочной информации. 

 

Панель инструментов «Поиск»

Редактор Visual LISP

Рис. 8. Панель инструментов «Поиск»

Эта панель предназначена для операций поиска и замены в текстовом редакторе Visual Lisp См. Рис. 8. На ней расположены следующие кнопки:

  • «Найти» — открывает одноименное окно.
  • «Заменить» — открывает одноименное окно.
  • «Поиск строки на панели инструментов» — кнопка работает вместе с раскрывающимся списком, и выполняет поиск символа, имя которого выбрано в этом списке или введено в список с клавиатуры.
  • «Закладка Вкл/Выкл» — дает возможность установить в тексте закладки. См. Рис. 9. 
Редактор Visual LISP

Рис. 9. Закладки

  • «Следующая закладка» — переходит от одной закладки к другой в том порядке, в котором закладки были проставлены.
  • «Предыдущая закладка» — переходит от одной закладки к другой в обратном порядке.
  • «Удаление всех закладок» — убирает из окна все закладки.

Панель инструментов «Отладка»

Редактор Visual LISP

Рис. 10. Панель инструментов «Отладка»

Панель инструментов «Отладка» имеет следующие кнопки см. Рис. 10:

  • «Точка останова Вкл/выкл» — Позволяет установить места, в которых при выполнении программы произойдет остановка. Используется для проверки программы на наличие ошибок. Места останова выделяются красным см Рис. 11.
Редактор Visual LISP

Рис. 11. Точки останова

Дойдя до точки останова, программа останавливается и ждет указания от пользователя о возможном варианте продолжения работы. Для продолжения используются кнопки:

  • «Шаг с заходом».
  • «Шаг с обходом».
  • «Шаг с выходом».
  • «Продолжить» — продолжает выполнение программы от текущей точки останова.
  • «Выйти» — останавливает выполнение текущего цикла и подымается на один уровень выше.
  • «Сброс» — останавливает выполнение программы.
  • «Добавить контрольное значение» добавляет переменные в окно «Контрольное значения». В этом окне можно отслеживать текущее значение переменных см. Рис. 12. 
Редактор Visual LISP

Рис. 12. Окно «Контрольное значение»

  • «Последний останов»

 

Панель инструментов «Вид»

Редактор Visual LISP

Рис. 13.    Панель инструментов «Вид»

Панель инструментов «Вид» имеет следующие кнопки см. Рис. 13:

  • «Активизация AutoCAD» — делает активным окно AutoCAD.
  • «Выбрать окно» — позволяет поменять активное окно, выбрав его из списка см. Рис.14. 
Редактор Visual LISP

Рис. 14. Выбрать окно.

  • «Консоль Visual LISP» — делает активным окно Консоль Visual LISP.
  • «Изучить» — открывает окно «Изучение». См. Рис. 15. 
Редактор Visual LISP

Рис. 15. Окно «Изучение»

  • «Трассировка» — — открывает окно «Стек Трассировки». См. Рис. 16. 
Редактор Visual LISP

Рис. 16. Окно «Стек трассировки»

  • «Окно отладки символов» — открывает одноименное окно. См. Рис. 17. 
Редактор Visual LISP

Рис. 17. Окно отладки символов.

  • «Справочный список» — открывает окно «Справочный список найденных символов». См. Рис. 18. 
Редактор Visual LISP

Рис. 18. Справочный список найденных символов.

  • «Окно контрольных значений» — открывает одноименное окно. См. Рис. 12.
Редактор Visual LISP

Рис. 12. Окно «Контрольное значение»

 

На этом наше знакомство интерфейсом редактора Visual LISP окончено. В дополнение к этому уроку смотрите видео: AutoLISP и Visual LISP

В следующем уроке мы рассмотрим пример простой программы на языке LISP. Подробно разберем ее программный код.

Пишите комментарии. Я с удовольствием отвечу на ваши вопросы.

Если вы хотите получать новости с моего сайта. Оформляйте подписку.

До новых встреч.

 «Автор: Михаил Орлов»

Google

Также на эту тему Вы можете почитать:

13 комментарии на “Урок 1. Редактор Visual LISP.

  1. Аноним 27.04.2014 19:50

    Очень круто, жду следующее видео! Спасибо.

  2. Аноним 06.02.2015 06:35

    Спасибо, все очень понятно)

  3. Антон 01.07.2015 09:20

    Здравствуйте! У меня вопрос: возможно ли в Автокад Электрикал 2013 с помощью АвтоЛисп создать диалоговое окно, в котором будут выпадающие списки, каталожных данных компонентов цепи (например вертикальная цепь из: мотор-автомата, пускателя и двигателя) и после выбора каталожных данных мы нажимаем «Ок» и строится цепь с уже назначенными данными.

  4. Сергей Петрович 21.07.2015 10:13

    Хотелось бы узнать о выходе следующих уроков:-)). Это возможно?

    • Михаил Орлов 21.07.2015 13:15

      В данный момент нет свободного времени. Ближе к осени обязательно появится, что нибудь новое.

  5. Юрий 10.02.2017 09:00

    Добрый день, сможете сказать в чем может быть проблема?
    Сделал из кода файла mp_kub команду квадрат назвал kv_rt и загрузил его в автокад но когда вызываю команду kv_rt автокад ее не распознает почему так?

    (DEFUN c:kv_rt (/ p1 p2 p3 p4) ;
    (setq p1 (getpoint «\nÓêàæèòå áàçîâóþ òî÷êó : «)) ;
    (setq p2 (polar p1 0 200)) ;
    (setq p3 (polar p2 (/ pi 2) 200)) ;
    (setq p4 (polar p3 pi 4) 200)) ;

    (setq osn (getvar «osmode»)) ;
    (setvar «osmode» 0) ;

    (command «_line» p1 p2 p3 p4 p1) ;
    (setvar «osmode» osn) ;

    ) ;

    • Михаил Орлов 13.02.2017 13:06

      Возможно, дело в кавычках. В программе везде должны стоять кавычки с английской раскладки клавиатуры «. Если проблема не в этом, пришлите мне Ваш LISP-файл на почту: acadprog@gmail.com. Я Вам отвечу точно.

  6. Николай 29.04.2017 07:55

    Давно мучает один простой вопрос.Примеры из литературы( неисполнимы лично мною) на практике.Пример: программа выполняется если вводится в командной строке чертежа и не выполняется если вводить с консоли.Где искать причины.Спасибо за любой даже односложный ответ.

      • Николай 11.05.2017 19:08

        Спасибо за ваш ответ.
        (defun c:label ( / xyz)
        (setq xyz (getpoint «Pick point:»))
        (command «_text» xyz 900 0 xyz)
        )

        • Михаил Орлов 15.05.2017 11:23

          Префикс С: перед названием создаваемой команды говорит о том, что это название будет использоваться для запуска команды из командной строки. Уберите префикс С: и тогда для запуска команды можно использовать и командную строку и консоль. Только название команды должно быть взято в скобки (label)

Оставить комментарий

Ваш mail не будет опубликован.

Вы можете использовать HTML теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>