- •Утверждено
- •Программирование на языке AutoLisp
- •1. Переменные языка AutoLisp
- •1.1 Системные переменные пакета AutoCad
- •1.2 Переменные языка AutoLisp определенные пользователем
- •2. Типы данных языка AutoLisp
- •3. Функции присвоения
- •4.2 Работа со строками, функции преобразования, проверки типов данных.
- •4.3 Логические функции Автолиспа.
- •5. Работа со списками
- •6. Использование функции get для ввода данных.
- •7. Работа с геометрическими описаниями объектов
- •8. Условное ветвление программ
- •9. Организация циклов
- •10. Вызов команд Автокада из программы на языке AutoLisp
- •11. Управление отображением
- •12. Вывод данных в командную строку
- •13. Файловый ввод - вывод
- •14. Определение функции
- •15. Отладка программы.
- •16. Доступ к примитивам и средствам Автокада
- •Функции AutoLisp Математические функции
- •Логические функции Автолиспа.
- •Работа со списками
- •Использование функции get для ввода данных.
- •Работа с геометрическими описаниями объектов
- •Условное ветвление программ
- •Организация циклов
- •Вызов команд Автокада из программы на языке AutoLisp
- •Управление отображением
- •Вывод данных в командную строку
- •Файловый ввод - вывод
- •Доступ к примитивам и средствам Автокада
- •Insert (block)
- •Vertex (pline)
1. Переменные языка AutoLisp
Язык AutoLISP, как и любой язык программирования, использует переменные. Переменная - это объект, имеющий уникальное имя и способный хранить в себе некоторое значение.
Система работы с переменными в языке AutoLISP значительно отличается от таковой в других языках программирования. Пользователь найдет, что она гораздо проще: не нужно заранее определять типы переменных и резервировать для них место. Переменные языка AutoLISP динамические - создание переменной и определение её типа осуществляется в момент присвоения переменной значения в программе. Таким образом, совершенно отсутствует секция определения данных.
AutoLISP - встроенный язык п. AutoCAD, поэтому кроме переменных самой программы на языке AutoLISP (т.е переменных созданных пользователем), программист имеет возможность обращаться к системным переменным п. AutoCAD - переменным определенными разработчиками фирмы Autodesk. Рассмотрим оба типа переменных.
1.1 Системные переменные пакета AutoCad
Все настройки графического редактора управляются системными переменными. Когда вы изменяете установки, например включаете режим ORTHO или изменяете пределы чертежа командой LIMITS и пр., AutoCAD сохраняет установленный режим в соответствующей системной переменной. Часть переменных имеет защиту от изменения - метку “read only”. Те переменные которые не имеют защиты могут быть изменены командой SETVAR. Системные переменные могут быть также изменены функциями языка AutoLISP.
Для того чтобы, после отработки LISP программы, настройки графического пакета не изменились, необходимо, сохранить старые значения системных переменных в переменных языка AutoLISP при помощи функции GETVAR. Далее установить новые значения системных переменных необходимые для работы Lisp программы функцией SETVAR (не путать с командой п.AutoCAD SETVAR) и затем восстановить их старые значения перед выходом из Lisp программы. Восстанавливать старые значения системных переменных - это хороший стиль программирования на AutoLISP, он поможет вам застраховаться от ошибок.
1.2 Переменные языка AutoLisp определенные пользователем
Переменные языка AutoLISP совершенно независимы от системных переменных п. AutoCAD и могут повторять их имена. При каждом обращении к переменной, AutoLISP использует то значение переменной, которое было установлено последним. Имя переменной может состоять из любых печатных символов (в т.ч. и цифр), однако не должно включать в себя зарезервированные Автолиспом символы, поскольку они интерпретируются специальным образом. Не рекомендуется использовать для имен переменных следующие символы:
Зарезервированные символы: . ' " ; ( ) или пробел
Знаки операций AutoLISP: - * = > < + - /
"Плохие" символы: ? ' ! \ " , а также управляющие символы
Нельзя также использовать в качестве имен переменных имена функций языка AutoLISP. Заметим, что AutoLISP не различает малые и большие буквы. Поскольку имя переменной длиной более шести символов требует для хранения больше памяти, рекомендуется не превышать этот предел. Не следует также начинать имя переменной с цифры.
Имена переменных | ||||
Неверные |
Ошибка |
верные | ||
123 |
|
РТ123 | ||
10.5 |
действительная константа |
tx10_5 | ||
ANGLK |
конфликтует с функцией ANGLE Автолиспа |
ANGL | ||
A(l) |
содержит запрещенные символы |
А_1 | ||
OLD SUM |
содержит пробел |
OLD_SUM |