С целью облегчения ориентирования в тексте пособия служебные слова, выполняющие различные функции, выделяются разными шрифтами. В табл. 1 приведены гарнитуры шрифтов, используемые в дальнейшем для выделения отдельных элементов программ. Эти гарнитуры используются только в тексте пособия, полные тексты программ на Автолиспе и отдельные извлечения из них, используемые в качестве примеров, выполняются гарнитурой Arial.
Если Автолисп подключен к Автокаду, любая функция Автолиспа, введенная в командную строку, обрабатывается, а результат обработки возвращается в поле сообщений. Это очень удобно как при отладке программ, так и при проверке правильности записи функций. Если во время сеанса активизирована программа, написанная с ошибками, Автолисп прекращает ее обработку, сообщает об ошибке и производит обратную трассировку программы, указывая то место, где она совершена.
Tаблица 1. Гарнитуры шрифтов, используемые в пособии
Гарнитура | Область использования | Примеры |
---|---|---|
Times New Roman Cyr | Имена примитивов | Arc, Line, Donut |
To же, полужирный | Команды Автокада | save, copy, line |
To же, курсив | Имена файлов, сообщения командной строки | c:\acad\bolt.lsp From point:_ |
Arial | Тексты программ, имена переменных | setq pt (1 2)) bolt, file1 |
To же, полужирный | Имена функций Автолиспа | setq, getdist |
Arial полужирный курсив | Аргументы функций | string [mode] |
1.1. Типы данных в Автолиспе
Автолисп может оперировать следующими типами данных:
• Идентификаторы (Symbols) или переменные (Variables)
• Целые числа (Integers)
• Вещественные числа (Real numbers)
• Строки (Strings)
• Списки (Lists)
• Дескрипторы файлов (File descriptors)
• Имена примитивов Автокада (AutoCAD entity names)
• Наборы примитивов Автокада (AutoCAD selection sets)
• Встроенные (Subrs) и внешние (External Subrs) функции
Идентификаторы или переменные. Эти два термина в Автолиспе идентичны. Подобно любым языкам программирования Автолисп для идентификации переменных использует их имена. Значение переменной определяется ее параметрами аналогично тому, как это принято в других языках. В соответствии с синтаксисом Автолиспа каждая законченная структурная единица заключается в круглые скобки, а входящие в нее параметры, команды и функции разделяются пробелами.
В качестве примера приводится установка переменной pt1, рассматриваемой как точка в поле чертежа:
(setq pt1 ‘(1 2)).
Здесь встроенная функция присвоения setq устанавливает имя переменной pt1 и идентифицирует ее с точкой, имеющей координаты х=1, у=2.
Три переменные Автолиспа определены заранее, и их значения не рекомендуется изменять. К ним относятся:
pause - переменная определена как строка, состоящая из одного символа - обратной косой черты (\ - backslash) - и используется в функции command для организации паузы при необходимости ввода данных оператором;
pi - переменная определена как константа π, оцениваемая приблизительно в 3.1415926;