Книги_AutoCad_2 / Настройка AutoCAD_Sham_Tickoo-Customizing_2006г
.pdf
Использование AutoLISP |
451 |
Кроме этого, программа должна вывести приглашение, которое позволит вам определить координаты центра этой окружности и ее диаметр, а также указать количество и диаметр крепежных отверстий и угол наклона оси первого отверстия.
Шаг 1: написание программы AutoLISP
;Эта программа чертит крепежные отверстия, расположенные ;по окружности заданного диаметра
;
(defun c:bc1() (graphscr)
(setvar "cmdecho" 0)
(setq cr(getpoint "\n Enter center of Bolt-Circle: ")) (setq d(getdist "\n Dia of Bolt-Circle: "))
(setq n(getint "\n Number of holes in Bolt-Circle: ")) (setq a(getangle "\n Enter start angle: "))
(setq dh(getdist "\n Enter diameter of hole: ")) (setq inc(/ (* 2 pi) n))
(setq ang 0) (setq r (/ dh 2))
(while (< ang (* 2 pi))
(setq p1 (polar cr (+ a inc) (/ d 2))) (command "circle" p1 r)
(setq a (+ a inc)) (setq ang (+ ang inc))
)
(setvar "cmdecho" 1) (princ)
)
Шаг 2: загрузка программы AutoLISP
Сохраните файл, а затем загрузите созданную программу, используя для этого команду APPLOAD.
Функция repeat
Функция repeat вычисляет выражение n-е количество раз, как определено этой функцией (рис. 12.25). Значение переменной n должно быть целым числом. Функция repeat имеет следующий формат:
repeat n,
где
•n — целое число, которое определяет, сколько раз должно быть выполнено указанное выражение.
Пример
(repeat 5
(setq x (+ x 10))
Использование AutoLISP |
453 |
Ниже приведен листинг программы AutoLISP для примера 10.
;Эта программа позволяет начертить заданное количество ;концентрических окружностей, используя функцию repeat. (defun c:concir()
(graphscr)
(setvar "cmdecho" 0)
(setq c (getpoint "\n Enter center point of circles: ")) (setq n (getint "\n Enter number of circles: "))
(setq r (getdist "\n Enter radius of first circle: ")) (setq d (getdist "\n Enter radius increment: ")) (repeat n
(command "circle" c r) (setq r (+ r d))
)
(setvar "cmdecho" 1) (princ)
)
Задания для самопроверки
Ответьте на следующие вопросы и сравните свои ответы с правильными ответами, приведенными в конце этой главы.
1.AutoLISP является ведущим языком программирования для ________.
2.Интерпретатор языка AutoLISP обычно входит в комплект программного обеспечения программы ________.
3.Функция ________ проверяет равенство указанных элементов.
4.В языке AutoLISP имеется целый ряд ________ функций.
5.Если встроенные функции используются вместе с функцией setq, то при первой возможности эти функции будут ________.
6.При использовании функции LOAD файловое имя и опциональное путевое имя программы AutoLISP должны быть указаны в ________.
7.Для загрузки файлов LISP используется команда ________.
8.Функция strcase преобразует символы, содержащиеся в строке, в ________.
9.Функция progn может использоваться вместе с функцией ________.
10.Функция setq используется для присваивания значений ________.
454 Глава 12
Повторение пройденного материала
Ответьте на следующие вопросы. 1. Заполните пропуски:
Command: (+ 2 30 5 50) |
возвращает ________. |
||||||
Command: (+ 2 30 4 55.0) |
возвращает ________. |
||||||
(– |
20 |
40) |
|
|
|
возвращает ________. |
|
(–30.0 |
40.0) |
|
|
возвращает ________. |
|||
(* 72 2 3 2.0) |
|
|
возвращает ________. |
||||
(* |
7 |
–5.5) |
|
|
|
возвращает ________. |
|
(/ |
299 |
–5) |
|
|
|
возвращает ________. |
|
(/ |
–200 |
9.0) |
|
|
возвращает ________. |
||
(1 |
– |
9) |
|
|
|
возвращает ________. |
|
(1 |
– |
–18.5) |
|
|
возвращает ________. |
||
(abs |
–90) |
|
|
|
возвращает ________. |
||
(abs |
–27.5) |
|
|
возвращает ________. |
|||
(sin |
pi) |
|
|
|
возвращает ________. |
||
(sin |
1.5) |
|
|
|
возвращает ________. |
||
(cos |
pi) |
|
|
|
возвращает ________. |
||
(cos |
1.2) |
|
|
|
возвращает ________. |
||
(atan |
1.1 |
0.0) |
|
|
возвращает ________ радиан. |
||
(atan |
–0.4 |
0.0) |
|
|
возвращает ________ радиан. |
||
(antgos |
1.5708 |
0 |
5) |
возвращает ________. |
|||
(antgos |
–1.5708 |
0 |
3) |
возвращает ________. |
|||
(< |
"x" |
"y") |
|
|
возвращает ________. |
||
(>= |
80 |
90 |
79) |
|
|
возвращает ________. |
|
2.Функция ________ создает паузу, которая дает вам возможность ввести координаты точки X и Y (или X, Y и Z).
3.Функция ________ используется для вызова стандартных команд AutoCAD во время выполнения программы AutoLISP.
4.В выражениях AutoLISP имена и опции команд AutoCAD должны указываться в кавычках. (Да/Нет)
5.Функция getdist создает паузу, которая позволяет определить ________ между двумя точками, а затем возвращает введенное значение в виде вещественного числа.
6.Функция ________ присваивает значение системной переменной AutoCAD. Имя системной переменной должно указываться в ________.
7.Функция cadr возвращает второй элемент списка, последовательно выполняя две операции: ________ и ________.
8.Функция ________ печатает на экране новую строку, т.е. выполняет ту же операцию, что и выражение \n.
9.Функция ________ создает паузу, которая позволяет пользователю определить величину угла, а затем возвращает значение угла в радианах.
10.Функция ________ всегда измеряет угол против часовой стрелки, начиная от положительной оси Х.
Глава 13
Использование Visual LISP
Цель занятия
Познакомившись с материалом этой главы, вы научитесь:
•работать с Visual LISP в программе AutoCAD;
•работать с текстовым редактором Visual LISP;
•загружать и запускать программы Visual LISP;
•загружать имеющиеся файлы AutoLISP;
•использовать консоль Visual LISP;
•изменять опции форматирования и работать с форматтером Visual LISP;
•отлаживать программы Visual LISP и отслеживать значения переменных.
460 Глава 13
Visual LISP
Язык программирования Visual LISP является инструментом дальнейшего расширения возможностей настройки AutoCAD. Программа AutoCAD версии 2.0 появилась в середине 1980-х годов. С тех пор пользователи начали применять язык AutoLISP для написания приложений, позволяющих создавать чертежи для различных отраслей промышленности. В их число входят разработка документации для проведения ремонтностроительных работ, проектирование машин и механизмов, разработка электрических цепей, систем кондиционирования воздуха, штампов и приспособлений для листовой штамповки и многое другое. Тем не менее, язык AutoLISP имеет определенные ограничения. Например, при написании программы с помощью текстового редактора проверить правильность использования круглых скобок, функций и системных переменных AutoCAD довольно сложно. Не менее проблематичным является и выявление ошибок, так как трудно определить, что происходит при выполнении программы и что приводит к появлению тех или иных ошибок. Многие программисты вводят в программу ряд дополнительных функций, используемых для проверки значений переменных на разных стадиях выполнения программы. Когда отладка программы завершается, эти функции удаляются или преобразуются в комментарии. Форматирование программного кода и равномерное распределение круглых скобок также относятся к числу проблем, возникающих при традиционном программировании на языке AutoLISP.
Visual LISP был разработан для упрощения и повышения эффективности программирования. В этом языке имеются собственные средства форматирования и мощный текстовый редактор, который поддерживает цветовое кодирование круглых скобок, имен функций, переменных и других компонентов программы. Имеющиеся средства форматирования (форматтер) позволяют сохранить программный код в удобочитаемом формате. Кроме этого, существует средство наблюдения, с помощью которого вы сможете отслеживать значения переменных и выражений, используемых в программе. Редактор Visual LISP содержит также интерактивную консоль с развитыми логическими функциями, которая значительно упрощает программирование на этом языке. Кроме этого, он предоставляет контекстно-зависимую справку по используемым функциям AutoCAD и поддерживает возможность поиска соответствующих символьных имен. Существующие средства отладки упрощают выявление и исправление допущенных ошибок, а также проверку исходного кода. Эти и другие возможности делают Visual LISP наиболее предпочтительным средством для написания программ на языке AutoLISP. Редактор Visual LISP, поддерживаемый программой AutoCAD, состоит из нескольких собственных окон. Тем не менее, не запустив AutoCAD, вы не сможете работать с Visual LISP.
Знакомство с Visual LISP
В этом разделе вы познакомитесь с некоторыми уникальными функциями Visual LISP, недоступными для пользователей AutoLISP. Вы узнаете о том, как начинать работу с Visual LISP, как писать программы с помощью текстового редактора Visual LISP, как загружать и запускать созданные программы.
Запуск редактора Visual LISP
Главное меню: Tools AutoLISP Visual LISP Editor
Командная строка: VLIDE
1. Запустите AutoCAD.
