
- •Методические указания к выполнению лабораторных работ
- •Лабораторная работа №1 «Введение в элементы языка лисп»
- •Работа в среде разработки.
- •Практические рекомендации:
- •Лабораторная работа №2 « Способы и методы хранения графической информации»
- •Основные особенности наиболее распространенных графических форматов
- •Цветовая модель rgb
- •Цветовая модель cmyk
- •Цветовые модели hsb и hsl
- •Пример программы работы с графическим файлом
- •Контрольные вопросы
- •Лабораторная работа №3 «Оформление чертежа в автоматизированной системе acad»
- •Лабораторная работа №4 «Выполнение позиционных задач в автоматизированной системе»
- •Изображение объектов трехмерного пространства. Метод проекций.
- •Ортогональные проекции.
- •Лабораторная работа №5 «Выполнение метрических задач в автоматизированной системе»
- •Способ прямоугольного треугольника
- •Способ замены плоскостей проекций
- •Лабораторная работа №6 «Выполнение пересечения фигур в автоматизированной системе»
- •Пересечение поверхностей
- •Лабораторная работа №7 «Выполнение разъемных и не разъемных соединений с использованием автоматизированной системы »
- •«Выполнение шпилечного соединения с использованием автоматизированной системы»
- •Лабораторная работа №9 «Эскиз простой детали»
- •Лабораторная работа №10 «Выполнение каркасной модели помещения с элементами инфраструктуры с использованием автоматизированной систем»
- •Несоблюдение стандарта преследуется по закону
- •Исполнение 1
- •Исполнение 2
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«МАТИ – Российский государственный технологический
университет имени К.Э. Циолковского» (МАТИ)
Кафедра «Информационные технологии»
Методические указания к выполнению лабораторных работ
по дисциплине " Инженерная и компьютерная графика "
Составитель: Шерышев А.Е.
Москва 2013
Содержание
Введение………………………………………………………………………………………………………….3
Общие рекомендации по выполнению лабораторных работ………….....3
Введение в элементы языка ЛИСП………………………………………………………4
Способы и методы хранения графической информации……….………….21
Оформление чертежа в автоматизированной системе ACAD……………..38
Выполнение позиционных задач в автоматизированной системе …………………………………………………………………………………………………………………..48
Выполнение метрических задач в автоматизированной системе…….52
Выполнение пересечения фигур в автоматизированной системе…….58
Выполнение разъемных и не разъемных соединений с использованием автоматизированной системы……………………………………………………………………61
Выполнение шпилечного соединения с использованием автоматизированной системы……………………………………………………………………..77
Эскиз простой детали…………………………………………………………………………81
Выполнение каркасной модели помещения с элементами инфраструктуры с использованием автоматизированной систем …………….90
Литература………………………………………………………………………………………………………92
Приложения…………………………………………………………………………………………………...94
Введение
Методическое пособие написано для дисциплины: «Инженерная графика» по направлению подготовки 230102 «Автоматизированные системы обработки информации и управления» для инженеров (очной формы обучения).
Общие рекомендации к оформлению лабораторных работ
Порядок выполнения работ :
1. Изучить методические указания.
2. Уяснить задание, выполняемое на лабораторной работе.
3. Выполнить работу.
4. Оформить отчёт
После выполнения работы необходимо оформить отчет о проделанной работе, который имеет:
-Титульный лист (оформление титульного листа см. в приложении);
- Параграф - Цели и задачи;
- Раздел – Теоретической части;
-Раздел – Практической части;
-Параграф – Выводы и результаты работы.
Работа оформляется на листах формата А4 и в электронном виде.
Лабораторная работа №1 «Введение в элементы языка лисп»
Цели и задачи выполняемой работы:
Ознакомиться с языком ЛИСП;
Получить практический навык по применению примитивов на языке ЛИСП;
Написать программу на языке ЛИСП;
Ознакомится со средой разработки и получить навык работы в ней.
Краткая информация о языке ЛИСП
При записи функций использована следующая терминология:
<атом> — константа или переменная любого типа;
<число> — целая или действительная константа или переменная, имеющая числовое значение, или функция, возвращающая числовое значение;
< целое > — то же, но только для целочисленных значений;
<угол> — то же, но в предположении, что числовое значение отражает некоторый угол в радианах;
символ > - текстовая константа, содержащая один символ, или переменная, или функция, возвращающая символ;
текст > — текстовая константа или переменная, имеющая текстовое значение, или функция, возвращающая такое значение;
<список> — конструкция вида (<элемент>...) или переменная, имеющая значение списка, или функция, возвращающая список;
точка > — любой список, содержащий два или три элемента, которые являются числами и могут быть интерпретированы как координаты геометрической точки;
функция > — любая функция Автолиспа (встроенная или определенная пользователем); при выполнении функции возможно обращение к функциям, "вложенным" в нее;
имя-функции > — последовательность символов, совпадающая с именем какой-либо функции Автолиспа;
<условие> — константа вида Т или 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. Внешнее описание полученного чертежа
Для выполнения каркасной модели была выбрана программа