Реферат: АвтоЛИСП - реализация языка программирования
Наша новая команда будет иметь следующую последовательность команд:
COMMAND: PATH (ДОРОЖКА)
Start point of path: start point
(Начальная точка дорожки: начальная точка)
End point of path: end point
(Конечная точка дорожки: конечная точка)
Half point of path: number
(Половина ширины дорожки: число)
Radius of tiles: number
(Радиус плит: число)
Spacing between tiles: number
(Расстояние между плитами: число)
где начальная и конечная точки определяют центральную линию дорожки. Определяется половина ширины дорожки и вводится радиус круглых плит. Наконец, определяется расстояние между плитами. Половину ширины дорожки мы определяем раньше, чем полную ее ширину потому, что это позволяет более четко определить отрезок типа "резиновая нить" от начальной точки.
3.3 Начало
Мы до конца разовьем эту прикладную задачу (по восходящей). В этой задаче мы будем применять жесткое задание углов.
АвтоЛИСП, как и многие другие языки программирования, определяет углы в радианах. Радианы измеряют углы от 0 до 2'PL. Так как большинство измеряет углы в градусах, мы определим функцию, которая преобразовывает градусы в радианы. Используя ваш редактор текста, создайте файл GP.LSP. Введите следующую программу:
: Convert angle in degree to radians
(defun dtr (a)
(*pi (/a 180.0))
)
Давайте рассмотрим, что это даст. Мы определили функцию, применив в АвтоЛИСПе функцию DEFUN. Функция называется DТR (сокращение от "degrees to radians" ("градусы в радианы")).
Она содержит один параметр "а" - угол в градусах. В результате - выражение:
PI * (a / 180.0)
которое в примечаниях ЛИСПа расшифровывается как: "произведение от PI, умноженное на коэффициент А, разделенное на 180 градусов". PI предопределяется ЛИСПом как 3.1459...; строчка, начинающаяся с двоеточия,- комментарий - АвтоЛИСП игнорирует текст, расположенный после двоеточия.
Сохраните файл на диске, затем перейдите на новый чертеж (имя не имеет значения, т.к. мы не будем сохранять чертеж).
Когда появится подсказка АвтоКАДа "Command:", загрузите функцию, введя:
Command: (load "gp")
АвтоЛИСП загрузит вашу функцию, отражая ее имя в "DТR". Далее в этом руководстве, когда мы говорим : "Введите АвтоКАД и загрузите программу", будет подразумеваться проделанная только что последовательность.
Сейчас мы проверим функцию, выполняя различные действия. Из определения радианы, 0 градусов должно соответствовать нулевой радиане; введите в АвтоКАД строчку:
Command: (dtr 0)