Реферат: АвтоЛИСП - реализация языка программирования
строка цифра
Имя функции показано таким, каким вы должны его ввести. Заключенные в кавычки элементы данных, следующие за именем функции, определяют количество и тип параметров, предполагаемых функцией.
В этом промере функция "moo" имеет два необходимых параметра: строка и цифра. Эллипсис ("...") определяет, что к функции могут быть присоединены дополнительные цифровые параметры. Не включайте в строку скобки или эллипсисы, если вы снабжаете функцию ссылками.
Вызов данного формата функции "moo" показан выше; для функции "moo" будут действительными следующие ссылки:
(moo "Hello" 5)
(moo "Hi" 1 2 3 )
Следующие примеры не соответствуют требуемому формату и приведут к ошибкам:
(moo 1 2 3 ) (первый параметр должен быть строкой)
(moo "Hello") (должен быть хотя бы один цифровой параметр)
(moo "do" '(1 2)) (второй параметр должен быть строкой,а не перечнем)
Когда необязательный параметр может возникнуть один раз, без повторений, он заключается в квадратные скобки ("[]"):
(foo <string> [<number>])
Здесь функция "foo" предполагает один строчечный параметр и принимает один необязательный цифровой параметр. Например, для функции "foo" будут действительны следующие вызовы:
(foo "catch")
(foo "catch" 22)
В этом примере показаны неправильные вызовы:
(foo 44 13) (первый параметр должен быть строчечным)
(foo "foe" 44 13) (слишком много параметров)
1.5 Изменения и расширения
Обработка ошибки
Если АвтоЛИСП сталкивается с ошибкой во время вычисления, он выдает сообщение следующей формы:
error:text
где text - описание ошибки. Если установлена функция "ERROR" (не ноль), АвтоЛИСП,вместо выдачи сообщения, выполняет эту функцию ("text"- ее единственный параметр). Если"ERROR" не установлена, или граничит с нулем, вычисление АвтоЛИСПа останавливается, а на экране появится обратный ход вызова функции и ее вызывающей программы до 100 уровней вглубь.
Глава 2
Установка АвтоЛИСПа
2.1 Требования
Выпуск формата
АвтоЛИСП снабжается любой копией Автокада. Никаких специальных установок не требуется. Файл "acadl.ovl" на рабочей дискете является оверлеем АвтоЛИСПа в АвтоКАДе.
Одна из рабочих дискет АвтоКАДа содержит файл "readme.doc". Просмотрите этот файл; он содержит самые последние изменения и корректировки в документации АвтоКАДа и АвтоЛИСПа.
2.2 Автоматические функции - файл "acad.lsp"
Начиная сеанс работы графического редактора АвтоКАДа, АвтоЛИСП загружает файл "acad.lsp" (если такой существует). На этом файле вы можете задать определения наиболее часто используемых функций и они будут автоматически высчитываться при редактировании чертежа. См.определение функции DEFUN в главе 4 .
Глава 3
По садовой дорожке к АвтоЛИСПу
Большое количество мощности АвтоКАДа поступает за счет его способности заказывать ее. Поближе познакомившись с АвтоКАДом, можно заметить, что вам бы хотелось, чтобы у него была некоторая возможность, часто необходимая вам. Вы можете начать добавление последовательности команд, которые вы часто применяете на экране, кнопок или планшетного меню. Вы можете определить новые типы линий, образцы штриховки или текстовый шрифт. Этим вы используете преимущества открытой архитектуры АвтоКАДа - возможность расширить его и сформировать его в ваш персонально-спроектированный инструментарий, реагирующий на особенности вашего мышления и работы.
Язык АвтоЛИСП - наиболее мощное условие для расширения возможностей АвтоКАДа. Эти, обеспеченныеАвтоКАДом благоприятные условия - реализация языка программирования ЛИСП, в сочетании с АвтоКАДом. Составляя программу на АвтоЛИСПе, вы можете добавить команды для АвтоКАДа и иметь больше мощности для модифицирования АвтоКАДа (что и имеют наши разработчики программного обеспечения).
Вскоре мы добавим новую команду для АвтоКАДа. В процессе объяснения принципа работы АвтоЛИСПа, мы дадим вам возможность использования его мощности для работы на вас. Команда, которую мы собираемся создать, сориентирована на архитектуру поверхности, но принципы , которые вы изучите, - релевантные, не считающиеся с вашей областью применения.
3.1 Что вы должны знать перед началом работы
Мы предполагаем,что вы сносно владеете АвтоКАДом - т.е. вы знаете команды АвтоКАДа и общие принципы их применения. Мы также предполагаем, что вы знакомы с текстовым редактором, который может создавать ASCII файлы. Сейчас мы напишем программу, а вы применяйте свой текстовый редактор для выполнения наших заданий.
В этом примере мы будем применять много функций АвтоЛИСПа. Последующие главы этого руководства содержат полное объяснение всех этих функций.
3.2 Задача