Работа в среде разработки.




Лабораторная работа №1

«Введение в элементы языка ЛИСП»

Цели и задачи выполняемой работы:

 

1. Ознакомиться с языком ЛИСП;

2. Получить практический навык по применению примитивов на языке ЛИСП;

3. Написать программу на языке ЛИСП;

4. Ознакомится со средой разработки и получить навык работы в ней.

 

Краткая информация о языке ЛИСП

При записи функций использована следующая терминология:

<атом> — константа или переменная любого типа;

<число> — целая или действительная константа или переменная, имеющая числовое значение, или функция, возвращающая числовое значение;

< целое > — то же, но только для целочисленных значений;

<угол> — то же, но в предположении, что числовое значение отражает некоторый угол в радианах;

символ > - текстовая константа, содержащая один символ, или переменная, или функция, возвращающая символ;

текст > — текстовая константа или переменная, имеющая текстовое
значение, или функция, возвращающая такое значение;

<список> — конструкция вида (<элемент>...) или переменная, имеющая значение списка, или функция, возвращающая список;

точка > — любой список, содержащий два или три элемента, которые являются числами и могут быть интерпретированы как координаты геометрической точки;

функция > — любая функция Автолиспа (встроенная или определенная
пользователем); при выполнении функции возможно обращение к функциям, "вложенным" в нее;

имя-функции > — последовательность символов, совпадающая с именем
какой-либо функции Автолиспа;

<условие> — константа вида Т или NIL, или переменная, или функция в предположении, что переменная может принимать, а функция возвращать значение NIL;

< элемент > — константа, переменная, список или функция;

<выражение> — любая запись на Автолиспе, т.е. константа, переменит список, функция или последовательность функций;

<ДФ>— дескриптор файла, т.е. переменная, принимающая значение, воз- вращенное функцией OPEN.

<примитив> — "имя-примитива", т.е. переменная, принимающая значение,
возвращенное такими функциями, как ENTNEXT, ENTLAST, CAR (ENTSEL) и
т.п., или сама такая функция;

< набор > — "имя набора", т.е. переменная, принимающая значение, возвращенное такими функциями, как SSGET, SSADD и т.п., или сама такая функция.

(+ <число> <число>...)

Возвращает число, равное сумме аргументов. Если хотя бы один аргумент действительный, то результат действительный, если все аргументы целые - то целый.

(- <ЧИСЛО> <ЧИСЛО>...)

Возвращает число, полученное в результате вычитания из первого аргумента остальных аргументов. Результат действительный, если хотя бы один аргу­мент действительный.

(* <ЧИСЛО> <ЧИСЛО>...)

Возвращает число, равное произведению аргументов. Результат действи­тельный, если хотя бы один аргумент действительный.

(/ <число> <число>...)

Возвращает число, полученное в результате деления первого аргумента на остальные аргументы. Результат действительный, если хотя бы один аргумент действительный. При делении целых чисел остаток отбрасывается.

(1+ <число>)

Возвращает значение аргумента, увеличенное на единицу. Тип результаты совпадает с типом аргумента.

(1- <число>)

Возвращает значение аргумента, уменьшенное на единицу. Тип результата совпадает с типом аргумента.

(= <элемент> <элемент>...)

Элементами могут быть или числа или тексты. Функция возвращает Т, если нее аргументы равны, иначе — NIL.

(/= <элемент> <элемент>)

Функция, возвращает Т, если аргументы не равны, иначе — NIL. (Аргументы - числа или тексты)

(< <элемент> <элемент>...)

Функция возвращает Т, если каждый последующий аргумент больше пре­дыдущего, иначе — NIL (Аргументы — числа или тексты.)

(<= <элемент> <элемент>...)

(> <элемент> <элемент>...)

(>= <элемент> <элемент>...)

Это функции сравнения, аналогичные функции "<". (~ <целое>)

Возвращает дополнение аргумента до единицы, т.е.

(~ 3) возвращает —4

(~ —7) возвращает 6 и т.д.

(ABS <целое>)

Возвращает абсолютное значение аргумента. Тип результата совпадает с типом аргумента.

(AND <условие>...)

Функция возвращает NIL, если хотя бы один аргумент имеет значение NIL, иначе — Т.

(ANGLE <точка 1> <точка 2>)

Возвращает действительное число, равное значению угла в радианах, образованного прямой от <точки 1>в <точку 2> и осью ОХ в текущей ПСК.

(ANGTOS <угол> [<целое 1> [<целое 2>]])

Возвращает текст, выражающий значение <угла>. Дополнительны* менты отражают представление и точность (см. п.4.1).

(APPEND <список> <список>...)

Возвращает список, образованный соединением списков-аргументов

(APPLY <имя-функции> <список>)

Функция, имя которой указано, выполняется в цикле для каждого элемента < списка >. Последний результат возвращается.

(ASCII <текст>)

Возвращает целое число, равное ASCII-коду первого символа в < тексте>

(ASSOC <ключ> <список>)

Возвращает подсписок из <списка>, найденный по <ключу> Если подсписок не найден, возвращается NIL.

(ATAN <число 1> [<число 2>])

Возвращает число, равное арктангенсу <числа 1>, если <число 2> но, и арктангенсу тангенса от деления чисел если <число2> задано.

(ATOF <текст>)

Преобразует текст в действительное число и возвращает это число.

(ATOI <текст>)

Преобразует текст в целое число и возвращает это число.

(АТОМ <элемент>)

Здесь аргумент может быть атомом или списком. Функция возвращает если аргумент — атом, иначе — NIL.

(BOOLE <целое1> <целое2> <целоеЗ>...)

Функция выполняет какую-либо функцию алгебры логики (Булеву функции.| побитно для аргументов от <целого2> и далее. Аргумент <целое1> может иметь значение от 0 до 15 и означает номер Булевой функции. Возвращаемый результат — целое число.

(BOUNOP <атом>)

Возвращает Т, если аргумент имеет какое-либо значение, отличное от NIL, иначе — NIL.

(CAR <целое>)

Возвращает первый элемент списка.

(CDR <список>)

Возвращает список без первого элемента. Для точечных пар возвращает »торой элемент пары.

CADR, CDAR, CADDR и т.п. — различные возможные комбинации функций CAR и CDR. Например, CADDR эквивалентно CAR(CDR(CDR)).

(CHR <целое>)

Возвращает текстовую константу, состоящую из одного символа, ASCII-код которого равен значению аргумента.

(CLOSE <ДФ>)

Функция закрывает файл и возвращает NIL.

(COMMAND <аргумент>...)

Функция вызывает команду или последовательность команд ACAD и воз­вращает NIL. Аргументами могут быть имена команд, аргументы этих команд, PAUSE,"" (последнее означает пробел или <Enter>).

CCOND (<условие> <выражение>)...)

Функция последовательно проверяет <условия>. Если она находит <усло-вие>, значение которого отлично от NIL, то выполняет соответствующее выра­жение > и на этом прекращает свою работу, возвращая значение < выражения >. Если все <условия> обращаются в NIL, то возвращается NIL.

(CONS <элемент> <список>)

Возвращает список, в котором к прежнему <списку> добавлен новый <элемент> (в начало списка).

(CONS <элемент> <элемент>)

Формирует точечную пару из двух элементов.

(COS <угол>)

Возвращает косинус от аргумента.

(DEFUN <имя-функции> ([<переменная-аргумент>]...

[/<локальная-переменная>...]]) <выражение>

Описывает функцию, имя которой задано. После выполнения DEFUN опи­санную функцию можно вызывать в программе. Возвращает имя описанной фун­кции, (Описание функции с помощью DEFUN является с точки зрения програм­миста подпрограммой, а < переменные-аргументы > — ее формальными пара-метрами)

(DISTANCE <точка1> <точка2>)

Возвращает число, равное расстоянию между точками (двух- или трехмер­ными).

(ENTDEL <примитив>)

Удаляет <примитив> из изображения или восстанавливает его изображение, если он ранее был удален с помощью ENTDEL (в текущем сеансе работы (АCAD). Возвращает имя примитива.

(ENTGET <примитив>)

Возвращает список, являющийся описанием примитива в базе данных чертежа.

(ENTLAST)

Возвращает имя последнего удаленного примитива в базе данных чертежа.

(ENTHOD <список>)

Аргумент должен быть построен по правилам описаний примитивов в базе данных, т.е. <список> должен относиться к какому-либо примитиву (или субпримитиву) чертежа. В результате выполнения функции происходит обновление изображения примитива на экране. Функция возвращает список-аргумент.

(ENTNEXT [<примитив>])

Возвращает имя первого (неудаленного) примитива в базе данных чертежа
если аргумента нет, или имя примитива, следующего за указанным. При отсутствии примитива возвращает NIL

(ENTSEL [<текст>])

Создает паузу, выдает < текст > (если он имеется), и ожидает указания на примитив. Возвращает список из двух элементов: имени примитива и точки указания.

(ENTUPD < примитив>)

Используется после функции EMTMOD, обновляющей субпримитивы слож­ного примитива. После выполнения ENTUPD изображение этого примитива на экране обновляется. Функция возвращает имя примитива.

(EQ <элемент1> <элемент2>)

Возвращает Т, если оба аргумента представляют собой один и тот же объ­ект (например, записанный с помощью SETQ в разные переменные), иначе — NIL.

(EQUAL <элемент1> <элемент2> [<число>])

Возвращает Т, если аргументы равны с точностью до указанного < числа >, иначе ~ NIL. Если допуск не задан, то равенством считается полное совпадение.

(*ERROR* <текст>)

Эту функцию может описать программист в своей программе. Обращение к ней будет производиться автоматически при возникновении какой-либо ошибки в процессе работы программы. Аргументом может являться текст, который предполагается выдать в качестве сообщения об ошибке (см. РП).

(EVAL <элемент>)

Возвращает значение аргумента.

 

(ЕХР <число>)

Возвращает число, вычисленное как е в степени <число>.

(ЕХРТ <чисао1> <чисао2>)

Возвращает число, полученное возведением <числа1> в степень <числа2>. Результат целый, если оба аргумента целые, иначе — действительный.

(FINDFILE <текст>)

Аргумент должен быть именем файла, с расширением и, возможно, маршрутом. Функция просматривает указанный каталог. Если каталог не указан, то просматриваются каталоги: текущий, текущего чертежа, AutoCADa. Если указанный файл найден, возвращается его полное имя с маршрутом (текст), если файл не найден, возвращается NIL.

(FIX <число>)

Возвращает целое число. Дробная часть аргумента (если она имеем отбрасывается.

(FLOAT <число>)

Возвращает действительное число.

(FOREACH <переменная> <список> <выражение>)

Функция организует цикл: <выражение> выполняется столько раз, сколько элементов имеется в < списке >. В < выражении > должна использоваться <переменная>, которая на каждом шаге цикла будет принимать значение элемента < списка >. Функция возвращает значение последнего выражения.

(GCD <целое1> <целое2>)

Возвращает наибольший общий делитель двух чисел.

(GETANGLE [<точка>] [<текст>])

Функция создает паузу и ожидает ввода числа или точки (если аргумент <точка > указан) или двух точек (если аргумент < точка > не указан). <Текст> выдается в зону подсказки. Функция возвращает действительное число, равное углу, образованному прямой, проходящей через две точки и осьюX (при выводе точек), или введенное число.

(GETC0RNER [<точка>] [<текст>])

Функция создает паузу и ожидает ввода точки. При перемещении курсора по экрану отображается "резиновый" прямоугольник с вершиной в <точке>. Функция возвращает введенную точку.

(GETDIST [<точка>] [<текст>])

Функция создает паузу и ожидает ввода числа или точки (если аргумент <точка> указан) или двух точек (если аргумент <точка> не указан) Функция возвращает действительное число, равное расстоянию между точками (двух- или трехмерными), если вводились точки, или введенное число.

(GETENV <имя-переменной-среды>)

Возвращает текст, являющийся значением переменной среды, т.е. переменной, устанавливаемой в MS DOS с помощью команды SET.

(GETINT [<текст>])

Функция создает паузу, ожидает ввода целого числа и возвращает это число.

(GETKWORD [<текст>])

Функция создает паузу и ожидает ввода ключевого слова из списка ключевых слов, определенных предшествующей функцией INITGET. Возвращает денное ключевое слово.

(GETORIENT [<точка>] [<текст>])

Выполняется так же, как GETANGLE. Отличается тем, что учитывает правление оси ОХ в текущей ПСК (см. п.4.2).

(GETPOINT [<точка>] [<текст>])

Функция создает паузу и ожидает ввода точки. Если аргумент < точка > задан, то перемещение курсора сопровождается "резиновой линией". Функция воз­вращает введенную точку.

(GETREAL [<текст])

Функция создает паузу, ожидает ввода действительного числа и возвращает это число.

(GETSTRING [<элемент>] [<текст>])

Функция создает паузу, ожидает ввода строки символов и возвращает вве­денную строку. Если первый аргумент присутствует и не обращается в NIL, то концом ввода будет нажатие на < Enter >, иначе ввод закончится первым же пробелом.

(GETVAR <текст>)

Возвращает значение системной переменной, имя которой указано в каче­стве аргумента. (Если имя указано неверно, возвращается NIL.)

(GRAPHSCR)

Функция переключает экран из текстового в графический и возвращает NIL.

(GRCLEAR)

Функция очищает графический экран и возвращает NIL.

(GRDRAU <точка1> <точка2> <целое1> [<целое2>])

Функция чертит вектор от <точки1> к <точке2>. <Целое1> — код цвета. Если <целое2> не равно нулю, то вектор подсвечивается. Возвращается NIL.

(GRTEXT [<целое1> <текст> [<целое2>]])

Функция выдает текст в зону экрана, определяемую значением <целого1>: <целое1 > > =0 — в строку экранного меню;

<целое1> -1 — в строку режима вверху экрана;

<целое1> =-2 — в строку координат вверху экрана.

Если <целое2> не равно нулю, текст будет подсвечен.

Если аргумент отсутствует, то состояние зон экрана восстанавливается. Функция возвращает NIL.

(GRREAO [<элемент>])

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

найден или содержит ошибки, то возвращается значение <элемента>. Если аргумент отсутствует, то выдается сообщение об ошибке и программа прекращает работу.

(LOG <число>)

Возвращает действительное число - натуральный логарифм от аргумента.

(LOGANO <цедое1> <целое2>...)

Возвращает целое число, являющееся результатом побитового выполнения логической операции И над аргументами.

(L0GIOR <целое1> <целое2>...)

Возвращает целое число, являющееся результатом побитового выполнения логической операции ИЛИ над аргументами.

(LSH <целое1> <целое2>)

Возвращает целое число, являющееся результатом побитового сдвига <целого1>. Число сдвигов определяется <целым2>, а направление сдвига его знаком (положительным считается сдвиг влево).

(МАРШ <имя - функции> <список1>...<списокN>)

Функция организует выполнение указанной функции. Число списков должно соответствовать числу аргументов функции. Число шагов цикла равно числу эле­ментов в каждом из списков. Возвращаемый результат — список, содержащий столько элементов, сколько было в каждом из исходных списков.

(МАХ <число>...)

Возвращает число, равное максимальному из списка аргументов (целое или действительное).

(MEMBER <элемент> <список>)

Возвращает список от <элемента> до конца <списка>. Если <элемент> не входит в состав <списка>, то возвращается NIL.

(MENUCMD <текст>)

Функция управляет "листанием" страниц (подразделов) меню. Текст строит­ся по схеме "имя-раздела = метка подраздела" или "имя-раздела = *". Функция возвращает NIL.»

(MIN <число>)

Возвращает число, равное минимальному из списка аргументов (целое или действительное).

(MINUSP <число>)

Возвращает Т, если аргумент отрицательный, иначе — NIL. (NOT <элемент>)

Возвращает Т, если значение элемента — NIL, иначе возвращает NIL.

(QUOTE <«выражение>)

Возвращает выражение, не вычисляя его. Альтернативная форма: <выражение>

(READ <текст>)

Возвращает атом или список. При этом < текст > должен быть построен как атом или список из одного элемента (т.е. без пробелов).

(READ-CHAR [<ДФ>])

Считывает очередной символ из буфера ввода и возвращает ASCII-код этого символа. Если символов в буфере нет, то ожидает ввода строки с клавиатуры при указанном <ДФ> считывает очередную запись из файла.

(READ-LINE [<ДФ>])

Если аргумент не задан, то функция создает паузу и ожидает ввода с клавиатуры. После ввода возвращают введенное значение в форме текстовой строке Если аргумент задан, то считывает очередную запись из файла и возвращает ее в форме текстовой строки. Если достигнут конец файла, то возвращает NIL.

 

(REDRAW [<примитив>] [<целое>])

Если аргументы не заданы, то функция "освежает" экран. Если задан первый аргумент, то функция восстанавливает примитив (после действия GRCLEAR). Если заданы оба аргумента, то функция изменяет изображения примитива в зависимости от режима, имеющего значения от 1 до 4.

(REM <число1> <число2>...)

Возвращает остаток от деления <числа1> на остальные <числа >. Если хо­тя бы одно <число> действительное, то результат также действительный, ина­че — результат целый.

(REPEAT <целое> <выражение>) '

Функция организует цикл по выполнению < выражения >. Число шагов цик­ла задается первым аргументом. Возвращается значение < выражения >, полу­ченное на последнем шаге цикла.

(REVERSE <список>)

Возвращает список, элементы которого расставлены в обратном порядке по сравнению с исходным списком.

(RTOS <действительное-число> [<целое1> [<целое2>]])

Возвращает текст, соответствующий значению <действительного-числа> <целое1> может иметь значения от 1 до 5 (обычное значение 2) и задает режим представления. <Целое2> задает точность. Если необязательные аргументы не заданы, то режим и точность задаются в соответствии со значениями системных переменных.

(SET <переменная> <элемент>)

Вычисляет <элемент> и возвращает его значение. Записывает это значе­ние в некоторую переменную, имя которой было присвоено < переменой > с по­мощью SETQ. Таким образом, в отличие от "прямой" записи в переменную с по­мощью SETQ функция SET осуществляет "косвенную" запись.

(SETQ <переменная> <элемент>...)

Функция может иметь много пар аргументов. Для каждой пары вычисляет­ся значение <элемента> и записывается в <переменную>. Возвращает значе­ние последнего <элемента>.

 

(SETVAR <текст> <элемент>)

Здесь < текст > должен совпадать с именем системной переменой. Функция вычисляет значение <элемента> и присваивает его указанной системной пере­менной (при условии, что она не является переменной "только для чтения"). Воз­вращает вычисленное значение.

(SIN <число>)

Возвращает действительное число, равное синусу от значения аргумента.. (SQRT <число>)

Возвращает действительное число, равное квадратному корню от значения аргумента.

(SSADD [<примитив> [<набор>]])

Возвращает имя набора: пустого, если нет аргументов; содержащего <примитив >, если указан один аргумент; содержащего < набор > с добавлением к не­му < примитива >, если указаны оба аргумента.

(SSDEL <примитив> <набор>)

Удаляет < примитив > из < набора >, если он там имелся. Возвращает имя набора. Если операция удаления не выполнилась, возвращает NIL.

(SSGET [<буква>] [<точка1>[<точка2>]])

Функция возвращает имя набора примитивов. Является в Автолиспе основ­ным средством формирования наборов. При отсутствии аргументов набор фор­мируется из примитивов, указываемых пользователем. Аргументы могут зада­вать другие режимы выбора, при этом аргумент < буква > может иметь значения "С"("Т"), "L"("П"), "W"("P"), "С"("С"), "Х"("Х").

(SSLENGTH <набор>)

Возвращает целое число, равное числу примитивов в <наборе>. (Если это число больше 32767, то возвращается действительное число.)

(SSMEMB <примитив> <набор>)

Функция проверяет, входит ли <примитив> в <набор>. Если входит, то возвращается имя примитива, иначе — NIL.

(SSNAME <набор> <целое>)

Возвращает имя примитива из < набора >. Номер требуемого примитива в наборе задается вторым аргументом (номер первого примитива считается рав­ным нулю). Если <целое> больше числа примитивов в наборе минус единица, то возвращается NIL.

 

 

(STRCASE <текст> [<элемент>])

Возвращает текст, совпадающий с аргументом < текст >, все символы кото­рого переведены в верхний регистр, если второй аргумент имеется и не равен NIL, иначе — в нижний регистр.

(STRCAT <текст1> <текст2>...)

Возвращает текст, полученный в результате "сцепления" аргументов.

(STRLENGTH <текст>)

Возвращает целое число, равное числу символов в < тексте >.

(SUBST <элемент1> <элемент2> <список>)

Функция обеспечивает замену элементов в списке: все элементы, значения которых совпадают со значением <элемента2>, заменяются значениями <эле-мента1>. Функция возвращает список.

(SUBSTR <текст> <целое1> [<целое2>])

Возвращает текст, являющийся частью исходного < текста >. <Целое1> ука­зывает номер первого символа, а <целое2> — количество символов. Если вто­рой аргумент отсутствует, то последним символом является последний сим­вол <текста >.

(TBLNEXT <текст> [<элемент>])

 

Функция позволяет прочитать содержимое одной из символьных таблиц си­стемы AutoCAD, соответствующих данному чертежу. Здесь < текст > должен сов­падать с именем требуемой таблицы: "LAYER" — для таблицы слоев, "STYLE" — для гарнитур шрифтов и др. Если второй аргумент присутствует и не равен NIL, то обращение осуществляется с первой точки входа, иначе — с очередной точки входа (с учетом предыдущих обращений к этой же таблице с помощью TBLNEXT). Функция возвращает структурированный список, похожий на список, возвращаемый функцией ENTGET.

(TBLSEARCH <текст1> <текст2> [<элемент>])

Функция возвращает такой же результат, как и функция TBLNEXT. Аргу­мент <текст2> задает имя объекта (имя, идущее в списке данных за кодом 2), данные о котором требуется считать. Если <элемент> присутствует и не равен NIL, то следующее обращение с помощью TBLNEXT к этой же таблице будет про­изводиться со следующей точки входа, т.е. будут возвращаться данные о следую­щем объекте.

 

 

(TERPRI)

Переход к началу новой строки при выдаче в зону подсказок. Функция воз­вращает NIL.

(TRACE <имя-функции>...)

Функция предназначена для отладки программ. Имена всех функций, входя­щих в список аргументов, и результаты их выполнения будут появляться на экра­не в процессе их выполнения при работе программы. Возвращается имя послед­ней функции в списке.

(TRANS <точка> <эдемент1> <элемент2> [<элемент3>])

Функция осуществляет преобразование координат < точки > из одной систе­мы в другую. Аргументы <элемент1> и <элемент2> задают коды (признаки) ста­рой и новой систем координат. Если <элемент3> отсутствует или равен нулю, то возвращается точка (с новыми координатами), иначе — список чисел, задающих перемещение координат.

(TYPE <элемент>)

Возвращает атом, значение которого соответствует типу аргумента. Напри­мер, для действительного аргумента — REAL, для списка — LIST, для имени при­митива — ENAME и др.

(UNTRACE <имя- функции>...)

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

(VER)

Функция возвращает текст, содержащий номер текущей версии системы AutoCAD.

(VMON)

Функция позволяет сократить требуемую оперативную память за счет вре­менной выгрузки функций на диск. Целесообразно обращаться к VMON в начале программы (перед нерпой функцией DEFUN).

(VPOHTS)

Функция возвращает список, содержащий данные о действующих на дан­ный моментом видовых экранах (номера и координаты). Текущий экран является первым в списке

(WHILE <условие> <выражение>)

Основная функция для организации циклов. Шаги цикла повторяются, пока

<условие> имеет значение, отличное от NIL. Функция возвращает результат вычисления <выражения> на последнем шаге цикла.

(WRITE-CHAR <целое> [<ДФ>])

Функции выводит символ в строку подсказок или в файл (при наличии вто­рого аргумента). Аргумент <целое> должен совпадать с ASCII-кодом символа. Функции возвращает целое число, задаваемое значением первого аргумента.

(WRITE-LINE <текст> [<ДФ>])

Функция выводит текст в строку подсказок или в файл (при наличии второ­го аргумента) Но возвращает текст, совпадающий со значением первого аргумента.

(ZEROP <ЧИСЛО>)

Возвращает Т, если значение аргумента равно нулю, иначе — NIL.

 

Недостающими функциями языка можно воспользоваться в Помощи среды разработки.

Пример программы

Код:

(defun conserve(x0 y0 r rr b aa ah)

(setq r2(* r 1.12) rr2(/ rr 1.07)

p1(* 2 r2) r1(- p1 r) p2(* 2 rr2) rr1(- p2 rr)

p3(- rr2 r2)

rspher(* 0.5 p3) p4(+ r2 rspher) p5(/ rspher p4)

n1(/ 3.1416 p5) n(fix n1)

x1(+ x0 rr) x2(+ x0 rr1) x3(+ x0 r1) x4(+ x0 r)

p6(+ r2 rr2) p7(* 0.5 p6)

x5(+ x0 p7) p8(* 1.1 rr) p9(+ x0 p8) p10(- x0 p8)

p11(+ y0 p8) p12(- y0 p8)

t0(list x0 y0) t1(list x1 y0) t2(list x2 y0)

t3(list x3 y0) t12(list aa ah)

t4(list x4 y0) p13(* 0.5 b) t8(list x5 y0 p13)

t6(list p10 p11) t7(list p9 p12) t9(list x0 y0 p13)

)

(command)

(command "круг" t0 rr)

(command "круг" t0 rr1)

(command "круг" t0 r1)

(command "круг" t0 r)

(command "выдавить"t1 t2 t3 t4 "" b "" "")

(command "шар" t8 rspher)

(command "dispsilh" "1" "delay" "1000")

(command "_vscurrent")

(command "_Conceptual")

)

(conserve 300.0 200.0 75.0 160.0 70.0 594.0 420.0)

Внешнее описание полученного чертежа:

рис 1. Внешнее описание полученного чертежа

Для выполнения каркасной модели была выбрана программа

 

Работа в среде разработки.

Для запуска автоматизированной системы АвтоКАД необходимо:

Загрузить ПЭВМ.

Найти «значок» (системы АвтоКАД) на рабочем столе и двойным кликом «мыши» запустить систему АвтоКАД.

После этих действий должно появиться окно системы АвтоКАД.

Для выполнения этой работы в системе АвтоКАД необходимо ознакомиться с командой загрузки программы написанной на языке Лисп в систему АвтоКАД: _Load(”имя файла”)

 

 

Практические рекомендации:

 

Для выполнения работы необходимо ознакомиться с теорией и общими

рекомендациями по оформлению отчета.

- Программа может быть написана на любом языке программирования.

- Файлы и оформленная работа сохраняется в электронном виде на электронном носителе.

- Оформленная работа (в бумажном варианте) представляется преподавателю.

- Задание, выполняемая студентами, выдаются преподавателем

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

 

При защите лабораторной работы студент должен отчитаться по выполненной работе.

Выполненные задания оцениваются по следующим критериям:

- корректность реализации основного задания;

- читабельность исходного кода программы и наличие в нем комментариев;

- умение автора программы объяснить алгоритм ее работы и исходный код.

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

Контрольные вопросы

1.Объясните математическую модель задачи.

2. Поясните работу функций языка ЛИСП

3. Опишите алгоритм разработки программы

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-12-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: