Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_po_ITAP_vse_temy.docx
Скачиваний:
97
Добавлен:
14.04.2019
Размер:
827.71 Кб
Скачать
  1. Программирование пользовательского меню в AutoLisр для сапр AutoCad

Язык LISР сокращение официально - LISt Processing, неофициально - Lots of Idiotic Silly Parentheses.

Создан американским ученым Джоном Маккарти в 1957 в Массачусетском технологическом институте

Достоинства AutoLISР

- высокая компактностью - ядро интерпретатора 4..10Кб,

- функциональный стиль программирования

Основан на алгебре списочных структур, лямбда-исчислении и теории рекурсивных функций.

Диалекты языка LISР: Lisp1 (1958), MacLisp (1964), InterLisp (1972), CommonLisp (1984) - получил наибольшее распространение.

Особенности AutoLISP

- нет различия между программами и данными. И то, и другое есть список. По умолчанию любой список рассматривается как программа и AutoLISP пытается ее выполнить.

- используется обратная пользовательская запись списков-программ:

( имя_функции арг1 арг2 ... аргN )

- написание программы на AutoLISP сводится к разработке одной или нескольких пользовательских функций, среди которых есть головная функция - с нее начинается выполнение программы.

Типы данных в AutoLISP

  • числа целые,

  • целые с неограниченным числом знаков,

  • вещественные,

  • дробные (выполнение (/ 1 3) вернет 1/3, а не 0.3333333...),

  • комплексные,

  • списки,

  • массивы,

  • строки,

  • символы,

  • последовательности,

  • функции,

  • структуры,

  • макросы,

  • классы и

  • объекты.

  • Список - перечень атомов или списков, отделенных друг от друга пробелами и заключенных в скобки.

  • Атом - в AutoLISP является аналогом указателя на динамическую переменную в Паскале и представляет собой ссылку (адрес) ячейки памяти, начиная с которой записана та или иная информация.

  • Переменная - указатель на область динамической памяти, имеющий имя.

  • Значение переменной - данные, записанные в динамической памяти начиная с адреса, записанного в переменной.

Программирование в AutoLISP

Для присваивания значений переменным в AutoLISPе имеются две функции - SET и SETQ.

Пример ( SETQ a 10 ) помещает число 10 в область памяти, на которую указывает переменная а и одновременно задает тип переменной а - целое число.

в языке LISP возможно создание функций пользователя.

Организация библиотеки LISP файлов

1) все файлы необходимо складывать в одну папку. (Например, D:\MyLisp).

2) Необходимо прописать эту папку в путях доступа AutoCAD. (Сервис >> Настройка (Tools >> Options) или

набираем в командной строке _options.

Переходим на закладку Файлы (Files) и раскрываем список Путь доступа к вспомогательным файлам (Support File Search Path) :

3) папка прописана в путях доступа AutoCAD. (можно загружать файлы, не указывая конкретного пути, а только имя файла.Можно набрать в командной строке (load "<имя файла>") для загрузки необходимого кода, например (load "off2"). добавлять расширение .lsp не обязательно, хотя и не запрещается). 4) создание панели с кнопками для загрузки той или иной программы. Кнопка будет иметь следующее содержание:^C^C(if (null C:<команда>)(load "<файл>"));<команда>;

Вместо текста <команда> подставляется имя нужной команды, а вместо текста <файл> - имя того файла, в котором эта команда сохранена. Файл должен иметь расширение .lsp.

Автозагрузка файлов

Для загрузки пользовательских .lsp файлов при открытии чертежа необходимо добавить файлы в список автозагргузки

1) Выбирают Сервис >> Автолисп >> Загрузить (Tools >> AutoLISP >> Load) или набирают в командной строке _appload.

Загрузка приложений, помещенных в Автозагрузку (Startup Suite), как правило, выполняется во все профили и сессии AutoCAD.

Если существует 2 или более файлов, в которых описаны функции с одинаковыми именами, выполняться будет та, которая загрузилась последней.

Поскольку предсказать, в какой последовательности будет выполняться загрузка приложений, невозможно.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]