Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Компьютерная графика. Программирование на языке AutoLisp в среде AutoCad

Покупка
Артикул: 753120.01.99
Доступ онлайн
2 000 ₽
В корзину
В соответствии с рекомендациями научно-методической комиссии Министерства образования РФ по специальности 170300 «Металлургические машины и оборудование» в учебные планы вузов, ведущих подготовку инженеров-механиков в области металлургического оборудования, введена дисциплина «Компьютерная графика». В методических указаниях, предназначенных для выполнения курсовой работы по курсу «Компьютерная графика», приводятся необходимые теоретические положения, последовательность и пример выполнения курсовой работы, а также индивидуальные задания для написания программы на языке программирования AutoLisp. Могут быть полезны также студентам и преподавателям при подготовке по направлениям 651300 «Металлургия», 656500 «Безопасность жизнедеятельности» и др.
Чиченева, О. Н. Компьютерная графика. Программирование на языке AutoLisp в среде AutoCad : методические рекомендации / О. Н. Чиченева. - Москва : ИД МИСиС, 2004. - 44 с. - Текст : электронный. - URL: https://znanium.com/catalog/product/1232716 (дата обращения: 20.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
УДК 004.92 
Ч-72 

Р е ц е н з е н т 
кандидат технических наук, доцент С.А. Иванов 

Чиченева О.Н. 

Ч-72 
Компьютерная 
графика. 
Программирование 
на 
языке 
AutoLisp в среде AutoCad: Метод, указания.- М.: МИСиС, 
2004. - 44 с. 

В соответствии с рекомендациями научно-методической комиссии Министерства образования РФ но специальности 170300 «Металлургические 
машины и оборудование» в учебные планы вузов, ведущих подготовку инженеров-механиков в области металлургического оборудования, введена 
дисциплина «Компьютерная графика». 

В методических указаниях, предназначенных для выполнения курсовой 
работы по курсу «Компьютерная графика», приводятся необходимые теоретические положения, последовательность и пример выполнения курсовой работы, а также индивидуальные задания для написания программы на языке 
программирования AutoLisp. 

Могут быть полезны также студентам и преподавателям при подготовке 
по направлениям 651300 «Металлургия», 656500 «Безопасность жизнедеятельности» и др. 

© Московский государственный институт 
стали и сплавов (Технологический 
университет) (МИСиС) 2004 

ОГЛАВЛЕНИЕ 

Введение 
4 

1. Содержание и программное обеспечение курсовой работы 
6 

2. Основные понятия AutoLisp 
8 

3. Порядок выполнения курсовой работы 
12 

3.1. Постановка задачи написания программы и алгоритм ее 
решения 
12 

3.2. Паписание программы 
15 

3.2.1. Секция ввода данных 
15 

3.2.2. Секция промежуточных вычислений 
17 

3.2.3. Секция определения точек отрисовки 
19 

3.2.4. Секция отрисовки 
20 

3.2.5. Отладка программы. Возможные ошибки 
23 

3.3. Сдача и защита курсовой работы 
25 

Библиографический список 
25 

Приложение 1. Варианты исходных данных 
26 

Приложение 2. Функции GET... для ввода данных 
41 

Приложение 3. Математические функции 
42 

Приложение 4. Геометрическое описание объектов 
43 

3 

Введение 

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

Курсовая работа выполняется на персональном компьютере с использованием системы автоматизированного проектирования AutoCAD (версия 14 и выше) и текстового редактора Блокнот. Если используется версия AutoCAD 2000 и выше, то текст программы пишется непосредственно в среде AutoCAD с использованием редактора Visual Lisp Editor. 

AutoLisp - это язык программирования, встроенный в систему 
автоматизированного проектирования AutoCAD. Данный язык позволяет программно работать с объектами AutoCAD, справочными 
таблицами, считывать и записывать файлы из AutoCAD. AutoLisp 
можно считать прямым (и единственным!) окном в среду AutoCAD. 
Язык программирования AutoLisp позволяет: 

- использовать переменные и выражения при ответах на запросы 
команд системы AutoCAD; 

- создавать различные функции и новые команды AutoCAD, настраивая и расширяя, таким образом, графические возможности системы; 

- осуществлять программный доступ (считывание и изменение) к 
данным, относящимся к объектам рисунка, а также к таблицам 
AutoCAD, в которых хранится информация о блоках, слоях, видах, 
стилях и типах линий; 

- осуществлять программное управление графическим экраном 
AutoCAD и вводом/выводом информации с различных устройств. 

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

- названия программ и языка программирования набираются полужирным шрифтом Arial, например. Блокнот, AutoCAD и др.; 

- названия пунктов меню и подменю набираются шрифтом Times 
New Roman, например Settings, Tools и др. 

- названия диалоговых окон набираются шрифтом Arial полужирным курсивом, например Drawing Aids, Layer & Lintype 
Properties и др.; 

4 

- команды AutoCAD набираются прописными буквами полужирным шрифтом Arial, например LINE, ERASE и др.; 

- функции AutoLisp набираются шрифтом Arial прописными буквами и подчеркиваются, например DEFUN, SETQ и др.; 

- наименование клавиш, расположенных на клавиатуре, заключается в рамочку, например [ENTEf^ , 0 и др. 

Сразу же за английским вариантом написания различных опций и 
подсказок команд дается перевод на русский язык, набранный курсивом и заключеный в скобки, например Style (Стиль). 

Напомним основные понятия, которыми оперирует система 
AutoCAD. 

Главное меню - меню, расположенное в верхней части экрана, 
содержит все имеющиеся в системе команды. Обращение к любому 
пункту главного меню приводит к открытию соответствующего падающего меню, в котором содержатся различные команды или ссылки на диалоговые окна. 

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

Экранное меню - меню, расположенное на экране справа; так 
же как и главное меню содержит все имеющиеся в системе команды 
и дает возможность обращаться к различным опциям команд. Это 
позволяет свести работу на клавиатуре компьютера к минимуму. 

Командная строка расположена в нижней части экрана и служит для ввода команд, выдачи подсказок и ввода ответов на полученные подсказки. 

Строка состояний расположена под командной строкой и 
предназначена для отображения координат перекрестия курсора и 
управления (включения/выключения) текущими режимами работы 
системы. 

Пиктографические меню - меню, содержащие графическое 
изображение команд в виде кнопок (пиктограмм). Такие меню могут 
располагаться в любом месте экрана. 

5 

1. СОДЕРЖАНИЕ И ПРОГРАММНОЕ 
ОБЕСПЕЧЕНИЕ КУРСОВОЙ РАБОТЫ 

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

Для выполнения задания необходимо изучить следующие разделы 
курса «Компьютерная графика»: 

- работа с командами рисования, редактирования графического 
редактора AutoCAD; 

- программирование на языке AutoLisp; загрузка программы в 
AutoCAD; 

- работа с загруженной программой. 

Работа выполняется в виде отдельного файла с расширением .LSP. 
Для создания файла и работы с ним применяется текстовой редактор 
Блокнот, который содержится в стандартной поставке системы 
Windows. 

Для запуска текстового редактора необходимо обратиться к клавише |Пус1^ системы Windows (левый нижний угол экрана), затем 
выбрать пункт меню Программы 
•, далее пункт меню Стандартные • и в появившемся меню найти программу Блокнот. 
При сохранении файла необходимо обязательно задать расширение 
файла (см. рис. 1). При открытии уже имеющегося файла необходимо в графе Тип файла выбрать вариант Все файлы Р.^). 

При работе с системой AutoCAD 2000 и выше удобнее писать 
программу, используя редактор Visual LISP Editor, который находится в главном меню Tools, подменю AutoLISP. Внешний вид редактора показан на рис. 2. Данный редактор удобен тем, что составляющие языка программирования выделяются различным цветом. 
Таким образом удобно следить за пунктуацией и правильностью написания слов, что сокращает количество ошибок при написании программы. 

6 

Рис. 1. Диалоговое меню Сохранение текстового редактора Блокнот 

Jj.Visual LISP for AutoCAD <Drawing1.dwg> - [Primer.Isp] 

^ 
File Edit Search View 
Proiect 
Debug lools 
Window JHelp 
ШЕ 
iMlJL 

й ^ у a jt ^ 
Ю t:^ 
A+ 

n 'T it •' -^ f 
Й db* ?) 
jffie' H i i *:. ^ ("), 

3 ** A'>^-y
Cjl, "J IJ-' ^ qi " 

(defun c:primer () 

;Секция ввода данных 
(setq о (getpolnt "\nEnter center of the detal: ")) 
(setq d (getdist о "\nEnter diametr of the big circle: ")) 
(setq 1 (getdist о "\nEnter distance betueen the centers of snail 
(setnjd2 (getdist о "\nEnter dianetr of the snail circle: ")) 
(setq d3 (getdist о "\nEnter dianetr of the C-circle polygon: ")) 
(setq и (getreal "\nEnter uidth of the polyline: ")) 

;Промеж1)точные вычисления 
(setq r (/ d 2)) 
(setq r2 (/ d2 2)) 
(setq IB (/ L 2)) 

^ 

fEdit: Ci/RabAcad/PRIMER/Piimerlsp- (Visual LISP) 
LOOOOG С 00008 

Рис. 2. Внешний вид редактора Visual AutoLisp Editor 

Варианты исходных данных для курсовой работы приведены в 
прил. 1. 

7 

2. ОСНОВНЫЕ ПОНЯТИЯ AUTOLISP 

Система автоматизированного проектирования AutoCAD в своей 
работе базируется на геометрических свойствах объектов. При построении же чертежей и проектировании новых агрегатов конструкторы оперируют технологическими параметрами объектов. При помощи языка программирования AutoLisp можно настроить AutoCAD таким образом, чтобы обойти это противоречие. 

При выполнении курсовой работы пишется программа по отрисовке прокладки сложной формы с заданными технологическими параметрами. При написании программы эти технологические параметры 
необходимо перевести в геометрические и уже по ним, используя команды рисования среды AutoCAD, построить данную деталь. 

AutoLisp, как и любой язык программирования, использует переменные. Переменная - это объект, имеющий уникальное имя и 
способный хранить в себе некоторое значение. В отличии от других 
языков программирования, переменные в AutoLisp динамические, 
т.е. создание переменной и определение ее типа осуществляется в 
момент присвоения переменной значения (эту процедуру не надо 
производить заранее в секции определения данных). По типу переменные могут быть простыми и сложными. Тип переменной определяет операции, которые можно производить над переменной. 

Простые переменные - это переменные, которые не могут быть 
расчленены на составные части. Такие переменные называются атомами; к ним относятся: 

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

- целые переменные - это положительные или отрицательные целые числа (без дробной части и десятичной точки); 

- действительные переменные - это положительные или отрицательные числа с десятичной точкой; 

- дескрипторы файла - переменные, в которых хранится описание 
открытого файла; 

- символы - переменные, в которых хранятся не их значения, а 
ссылки на другие переменные; 

- встроенные функции - переменные, посредством которых осуществляется обращение к стандартной библиотеке функций AutoLisp; 

8 

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

В AutoLisp есть только один тип сложных переменных, который 
называется списком. 

Список - это набор разделенных пробелами атомов и/или списков, 
заключенных в круглые скобки. Количество элементов списка никак 
не ограничено. Элементом списка может быть список (элементами 
которого, в свою очередь, могут быть списки и т.д. и т.п.), причем 
максимально возможная вложенность списков также не ограничена. 
Таким образом, список может быть любой вложенности и состоять 
из неограниченного количества элементов. Типа данных с такими 
свойствами нет ни в одном из обычных языков программирования. 

Примеры списков: 
(12.6 45.7 77.8) 
("CAT" "MOUSE" "DOG") 
(1(12.6 6.78) ("Пример списка")) 
(*2 5) 
(setq point'(1.0 5.0 6.7)) 

Из этих примеров ясно, что списки - идеальное средство работы 
со сложным образом организованной информацией, представленной 
в геометрическом виде. Точка - список трех действительных чисел. 
Отрезок - список двух точек. Полилиния - список многих вершин. 

Каким же образом AutoLisp отличает управляющие конструкции 
(объект, который оперирует с данными) от самих данных? Любая 
управляющая конструкция содержит объекты специального типа функции, функции могут быть встроенными или определяться пользователем. 

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

Список, первым элементом которого является функция, называется выражением. 

9 

Любая программа, записанная на языке AutoLisp, состоит из выражений, и сама является выражением. Основные свойства выражений следующие: 

- каждой открывающейся круглой скобке должна соответствовать 
закрывающаяся скобка; 

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

- следующие за именем функции аргументы функции должны 
быть отделены от имени функции и друг от друга по крайней мере 
одним пробелом; 

- каждое выражение вычисляется (выполняется) и результат возвращается; результатом может быть нуль (nil) или результат вычисления последнего подвыражения. 

Выражение языка AutoLisp имеет следующий вид: 

(функция аргумент1 аргумент2 .. . аргументы), 

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

Аргумент может быть обязательным и необязательным. Если при 
создании функции было определено, что ее аргументы являются обязательными, то AutoLisp выдаст ошибку при попытке вызвать 
функцию без указания этого аргумента. Однако аргументы могут 
быть и необязательными, в этом случае их при вызове функции можно не указывать. Следует также внимательно следить за типом аргументов: если функция производит операции над целыми числами, то 
ей нельзя передать строку, или наоборот. 

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

Как уже говорилось выше, любая программа на языке AutoLisp 
является определенной пользователем функцией. Для определения 

10 

функции (задания имени создаваемой команде) используется функция DEFUN. что является сокращением от английского словосочетания DEfme FUNction - определить функцию. Данный оператор определяет функцию посредством создания структурированного списка 
операторов программы. Определенная таким образом функция создает свою собственную замкнутую область локальных переменных. 
При вызове функции в эту замкнутую область передаются данные, 
выполняются операторы программы, после чего осуществляется передача данных обратно в среду AutoCAD - AutoLisp. 
Формат функции DEFUN следующий: 

(defun С:имя (аргументы /локальные переменные) 

тело функции (программа) 
) 

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

Имя команды, создаваемой в AutoLisp, не должно совпадать с 
именем команды AutoCAD (в противном случае команда AutoCAD будет заменена на новую команду и к ней нельзя будет обратиться) и может состоять из любых печатных символов (в том числе 
и цифр), однако не должно включать в себя следующие символы: 
|. ^ " ; ( ) пробел - * ^ 
> < + I ? 
' 
! \ | . 

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

При запуске графического редактора AutoCAD загружается файл 
acad.lsp (если он существует). В этот файл можно внести определения наиболее часто используемых функций, и они будут загружаться 
автоматически при вызове графического редактора. 

11 

3. ПОРЯДОК ВЫПОЛНЕНИЯ КУРСОВОЙ РАБОТЫ 

3.1. Постановка задачи написания 
программы и алгоритм ее решения 

в качестве примера рассмотрим написание на языке AutoLisp 
программы по отрисовке детали, чертеж которой представлен на рис. 
3. Известны следующие технологические параметры данной детали: 
точка центра детали - точка С; D - диаметр внешнего контура; D1 диаметр окружности, описанной вокруг треугольника; R - радиус 
скругленного выступа; А - расстояние от центра детали до конца 
прямоугольного выступа; В - ширина прямоугольного выступа; L расстояние от центра детали до центра скругленного выступа; W толщина основной линии. 

Рис. 3. Чертеж детали с заданными технологическими параметрами 

Любая программа, составленная на языке AutoLisp, включает 
три самостоятельные части: 

- ввод технологических параметров пользователем; 
- числовые и геометрические расчеты, в процессе которых определяются значения вспомогательных переменных; 

12 

Доступ онлайн
2 000 ₽
В корзину