Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
САПР1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
260 Кб
Скачать
☆

Управляющие структуры

APPLY – применяющий функционал. Осуществляет применение функционального объекта. Применяет заданную функцию к списку аргументов.

: APPLY’ +’ (1 2 3))

: 6

WHILE вычисляет выражение и, если оно не NIL, то вычисляются остальные выражения, затем сначала до тех пор, пока выражение не станет NIL.

: (SETQ a 1)

: (WHILE (<= a 10) (SETQ a (1+a)))

11.

COND – условное предложение, является основным средством разветвления вычислений. В COND вычисляются последовательно выражения до тех пор, пока значение не станет Т, после чего полученное значение возвращается в качестве значения COND; если истинного выражения нет, то значение COND NIL.

REPEAT вычисляет выражение заданное число раз:

: (SETQ a 10)

: (REPEAT 4 (SETQ a (+a 10)))

50

:!a

50.

Использование Auto lisp в среде Auto cad

Auto LISP обладает естественной расширяемостью за счет определения новых функций. Он позволяет пользователю определять собственные функции, с помощью функции DEFUN.

Использование больших последовательностей LISP – выражений приводит к необходимости их подготовки с помощью текстовых редакторов и загрузки для исполнения. С этой целью используется функция LOAD.

Эта функция загружает и выполняет файл выражений Auto LISP. По умолчанию предполагается, что расширение файла <lsp>. Например, чтобы загрузить файл с именем my file. lsp, необходимо задать:

(LOAD “my file”).

Обычно загружаемый файл содержит определения собственных функций с использованием DEFUN, хотя это может быть и обычная последовательность действий, описанных с помощью языка Auto LISP. Если загрузка успешно завершена, LOAD возвращает имя последней функции. Если операция не выполнена, обычно вызывается стандартный обработчик ошибок Auto LISP.

Всякий раз, когда редактор Auto CAD начинает очередной сеанс, Auto LISP загружает файл acad.lsp, если он существует. В этот файл помещаются часто используемые функции.

Для добавления новых команд в Auto CAD используется определение функции с помощью DEFUN. Такие функции должны удовлетворять следующим требованиям:

  1. Имя функции должно иметь вид «с: имя», где «с» - признак определения новой команды, имя – имя команды, не должно дублировать команду Auto CAD или функцию;

  2. Функция должна быть без аргументов.

Доступ из Auto lisp к командам Auto cad

Доступ к командам Auto CAD обеспечивается функцией COMMAND:.

Аргументы представляют собой команды Auto CAD, их ключи, координаты точек, числовые и текстовые параметры. Каждый аргумент вычисляется и посылается в редактор Auto CAD как ответ на соответствующий запрос. Команды и их ключи представляются как строковые константы.

Пустая строка (“”) равносильна нажатию пробела или <ENTER> на клавиатуре. Вызов функции COMMAND без аргументов равносилен нажатию <Ctrl/c> - прерывание выполнения команды Auto CAD.

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

Пример формирования с помощью Auto LISP

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

(DEFUN BOX(x y a b)

(SETQ t1(LIST x y)

t2(LIST x(+y a))

t3(LIST(+x b) (+y a))

t4(LIST(+x b ) y)

‘

(COMMAND “PLINE” t1 t2 t3 t4 “CLOSE”)

‘

Пример более сложной программы

; Аргументы функции var 5

; S – длина выступов

; h – высота выступов и расстояние между ними

; n – количество выступов

; x, y – расположение первого выступа на чертеже

(DEFUN var (s h n x y)

(SETQ x1 (-x 20.0) ; x центр окружности

y1 (-y 130.0) ; y центра окружности

; 1

; счетчик количества выступов.

‘

; вызов команды PLINE с нижней точкой последнего выступа

(COMMAND “PLINE” (LIST x (-y (*n (*h 2.0))))

(LIST x y1); начало дуги

; переход в режим дуг и координата конца дуги

“Arc” (LIST x1 (-y 110.0))

; переход в режим отрезков и координата верхнего левого угла

“Line” (LIST x1 y)

(LIST xy) ; начало первого выступа

‘

; конец COMMAND

; цикл прорисовки выступов

(WHILE (<=i n)

; вычисление смешения очередного выступа по y

(SETQ dy (* (* -2.0 h) (1-i)))

; прорисовка очередного выступа

(COMMAND (LIST (+x s) (+y dy))

(LIST (+x s) (+y (-dy h)))

(LIST x (+y (-dy h)))

(LIST x (+y (-dy (*2.0 h))))

(SETQ i(1+i)) увеличение счетчика выступов

‘ ; конец цикла.

(COMMAND””); завершение выполнения команды PLINE

; вызов команды рисования окружности

(COMMAND “CIRCLE” (LIST x1 y1) 15.0)

; конец определения функции

1) (var5 10 10 4 70 170)

2) (var5 30 10 6 140 170)

После этого можно ввести предполагаемую функцию в ЭВМ, получить чертеж и сравнить его с предварительным изображением.

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