В этом уроке мы познакомимся с интерфейсом редактора Visual LISP, который является основным средством для написания программ AutoLisp.
AutoLisp – язык программирования, при помощи которого вы можете создавать новые пользовательские программы для AutoCAD, повышая тем самым его производительность.
Структура программы на языке AutoLisp:
Пример арифметической функции на AutoLisp:
(+ 10 5) – читается: сложить десять с пятью.
+ — имя функции (следует сразу после открывающей скобки);
10 и 5 – аргументы (следуют после имя функции; после последнего аргумента стоит закрывающая скобка)
Основным средством для написания программ на AutoLisp служит редактор Visual Lisp, который в первые появился в Автокад 2000. В нем присутствует развитая среда программирования с инструментами поиска ошибок. Редактор Visual Lisp интегрирован в Автокад и запускается только из активного окна.
Запустить его можно набрав в командной строке «VLISP» («VLIDE») и нажав клавишу <Enter>. Или на ленте выбираем вкладку «Управление» и на панели «Приложение» щелкаем на пункте «Редактор Visual Lisp». См. Рис. 1.
Редактор Visual Lisp включает в себя четыре окна. См. Рис. 2:
Текст написаный в текстовом редакторе показывается с использованием различных цветов. Цвета текста описаны в таблице №1.
Таблица №1
| Коричневый на сером фоне | Комментарии, которые начинаются точкой с запятой (; комментарий) |
| Цвет | Область применения |
| Синий | Функции AutoLISP (DEFUN, setq) |
| Пурпурный | Последовательность символов, находящихся в кавычках («_Line») |
| Черный | Пользовательская информация. Имена переменных и пользовательских функций. |
| Зелёный | Целые числа (10 5) |
| Бирюзовый | Вещественные числа, которые имеют десятичную точку (27.7 15.9) |
Перед тем, как приступить к написанию программы, давайте изучим панели инструментов.
В редактор Visual Lisp входят пять панелей инструментов:
Рис. 3. Панель инструментов «Стандартная»
Первые девять кнопок соответствуют аналогичным кнопкам других приложений Windows. См. Рис. 3. Кнопка «Дописать слово» дает возможность редактору Visual Lisp дописать начатое вами слова.
Откройте новый файл, наберите «de» и нажмите на кнопку «Дописать слово» (или нажмите на клавиатуре сочетание клавиш <Ctrl> + <Shift> + <Space>). Visual Lisp допишет слово до «defun». Далее наберите «get» и снова нажмите на кнопку «Дописать слово». Visual Lisp выдаст список возможных вариантов дописывания слова. В этот список входят имя, встроенных в Visual Lisp, стандартных функции. См. Рис. 4.
Рис. 4. Кнопка «Дописать слово»
Рис. 3. Панель инструментов «Инструменты»
На панели «Инструменты» расположены следующие кнопки см. Рис. 5:
Щелкните мышкой внутри окна (сделайте текстовое окно активным) и нажмите кнопку «Форматировать содержимое окна редактора». Текст будет отформатирован см. Рис. 7.
Эта панель предназначена для операций поиска и замены в текстовом редакторе Visual Lisp См. Рис. 8. На ней расположены следующие кнопки:
Рис. 10. Панель инструментов «Отладка»
Панель инструментов «Отладка» имеет следующие кнопки см. Рис. 10:
Дойдя до точки останова, программа останавливается и ждет указания от пользователя о возможном варианте продолжения работы. Для продолжения используются кнопки:
Рис. 12. Окно «Контрольное значение»
Рис. 13. Панель инструментов «Вид»
Панель инструментов «Вид» имеет следующие кнопки см. Рис. 13:
Рис. 14. Выбрать окно.
Рис. 15. Окно «Изучение»
Рис. 16. Окно «Стек трассировки»
Рис. 17. Окно отладки символов.
Рис. 18. Справочный список найденных символов.
Рис. 12. Окно «Контрольное значение»
На этом наше знакомство интерфейсом редактора Visual LISP окончено. В дополнение к этому уроку смотрите видео: AutoLISP и Visual LISP
В следующем уроке мы рассмотрим пример простой программы на языке LISP. Подробно разберем ее программный код.
Пишите комментарии. Я с удовольствием отвечу на ваши вопросы.
Если вы хотите получать новости с моего сайта. Оформляйте подписку.
До новых встреч.
«Автор: Михаил Орлов»
Программа "Расчет профиля" создана в помощь инженерам-проектировщикам, работающих с профилями. Автор программы, читатель моего сайта:…
Любой чертеж может быть разбит на простейшие элементы, примитивы. В этом уроке мы познакомимся с…
Как нарисовать дугу в Автокаде? Для этого в программе Автокад существует несколько способов. В этом…
Любой чертеж может быть разбит на простейшие элементы, примитивы. В этом уроке мы познакомимся с…
В этой статье мы продолжим процесс автоматизации проектирования систем вентиляции. (далее…)
Одним из эффективных способов автоматизации процесса проектирования в Автокад, может послужить создание своих программ на…
View Comments
Очень круто, жду следующее видео! Спасибо.
Постараюсь записать в ближайшее время.
Спасибо, все очень понятно)
Здравствуйте! У меня вопрос: возможно ли в Автокад Электрикал 2013 с помощью АвтоЛисп создать диалоговое окно, в котором будут выпадающие списки, каталожных данных компонентов цепи (например вертикальная цепь из: мотор-автомата, пускателя и двигателя) и после выбора каталожных данных мы нажимаем "Ок" и строится цепь с уже назначенными данными.
В Автокад Электрикал никогда не работал, не знаю. Просто в Автокаде можно создавать диалоговые окна. Смотрите статьи:
http://acad-prog.ru/dialogovoe_okno/
http://acad-prog.ru/dialogovoe-okno-avtokad/
Хотелось бы узнать о выходе следующих уроков:-)). Это возможно?
В данный момент нет свободного времени. Ближе к осени обязательно появится, что нибудь новое.
Добрый день, сможете сказать в чем может быть проблема?
Сделал из кода файла 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) ;
) ;
Возможно, дело в кавычках. В программе везде должны стоять кавычки с английской раскладки клавиатуры ". Если проблема не в этом, пришлите мне Ваш LISP-файл на почту: acadprog@gmail.com. Я Вам отвечу точно.
Давно мучает один простой вопрос.Примеры из литературы( неисполнимы лично мною) на практике.Пример: программа выполняется если вводится в командной строке чертежа и не выполняется если вводить с консоли.Где искать причины.Спасибо за любой даже односложный ответ.
Пришлите пример мне на почту: acadprog@gmail.com
Спасибо за ваш ответ.
(defun c:label ( / xyz)
(setq xyz (getpoint "Pick point:"))
(command "_text" xyz 900 0 xyz)
)
Префикс С: перед названием создаваемой команды говорит о том, что это название будет использоваться для запуска команды из командной строки. Уберите префикс С: и тогда для запуска команды можно использовать и командную строку и консоль. Только название команды должно быть взято в скобки (label)