• RU
  • icon На проверке: 40
Меню

Разработка программы AutoLISP для черчения детали

  • Добавлен: 25.10.2022
  • Размер: 6 MB
  • Закачек: 0
Узнать, как скачать этот материал

Описание

Разработка программы AutoLISP для черчения детали

Состав проекта

icon
icon 1566203948_img_20180923_163404.jpg
icon 1809-1390.LSP
icon 1809-1390 пластина.bak
icon 1809-1390._LS
icon 1809-1390.pdf
icon 1566203925_img_20180923_163111.jpg
icon 1809-1390 пластина.cdw
icon 1809-1390.cdw
icon 1566203923_img_20180923_163132.jpg
icon 1809-1390 пластина.dwg
icon 1809-1390.docx
icon 1809-1390.dwg
icon 1809-1390.bak

Дополнительная информация

Контент чертежей

icon 1809-1390 пластина.dwg

1809-1390 пластина.dwg

icon 1809-1390.docx

)Разработка чертежа детали в AutoCAD.
)Разработка чертежа детали в КОМПАС-2D.
)Разработка пользовательской программы САПР (Autolisp)
1) Определение конструкторско-технологических параметров.
2) Определение программных параметров.
3) Секция промежуточных вычислений.
4) Определение координат точек отрисовки.
5) Построение чертежа.
6) Разработка программы.
7) Описание работы программы.
При прохождении курса систем автоматического проектирования мы изучили программы и методы автоматизации чертежей которые позволяют ускорить процесс проектирования схем и чертежей а также автоматизировать некоторые узлы схем и агрегатов для более быстрой и удобной разработке схем.
В данном курсовом проекте мы рассмотрим некоторые программы для работы с чертежами такие как: КОМПАС-2D и AutoCAD. Кроме этих программ так же рассмотрим одно из приложений AutoCAD которое называется AutoLisp в данное приложение мы сможем создать программу которая начертит нам узел нашего агрегата данным узлом будет одна из деталей данная по заданию. Задача курсовой работы – освоение языка программирования AutoLisp и разработка программы параметризованной геометрической модели или чертежа.
Разработка чертежа детали в AutoCAD.
AutoCAD— двух- и трёхмернаясистема автоматизированного проектированияи черчения разработанная компаниейAutodesk. Первая версия системы была выпущена в 1982 году. AutoCAD и специализированные приложения на его основе нашли широкое применение в машиностроении строительстве архитектуре и других отраслях промышленности. Программа выпускается на 18 языках. Уровень локализации варьирует от полной адаптации до перевода только справочной документации. Русскоязычная версия локализована полностью включаяинтерфейс командной строкии всю документацию кроме руководства по программированию. [1]
В задании данного курсового проекта было дано две детали которые необходимо было начертить 2 детали в среде AutoCAD. На рисунке 1 мы видим чертеж пластины выполненной в AutoCAD.
Рисунок 1 – Чертеж пластины в AutoCAD.
А на рисунке 2 чертеж детали.
Рисунок 2 – Чертеж детали в AutoCAD.
Разработка чертежа детали в КОМПАС-2D.
«Компас»— семействосистем автоматизированного проектированияс возможностями оформления проектной и конструкторской документации согласно стандартам серииЕСКДиСПДС.
Разрабатывается российской компанией «Аскон». Название линейки является акронимом от фразы «комплексавтоматизированныхсистем». В торговых марках используется написание заглавными буквами: «КОМПАС». Первый выпуск «Компаса» (версия 1.0) состоялся в 1989 году. Первая версия под Windows— «Компас5.0»— вышла в 1997 году. [1]
Так же в данном курсовом проекте требовалось изучить и начертить чертежи в данной программе результаты можем видеть на рисунке 3 и 4.
Рисунок 3 – Чертеж пластины в КОМПАС-2D.
Рисунок 4 – Чертеж детали в КОМПАС-2D.
Разработка пользовательской программы САПР (Autolisp)
АutoLISP - это модификация языка программирования LISP встроенная в пакет ADE-3 AutoCAD. AutoLISP позволяeт пользователям и разработчикам AutoCADа писать макропрограммы и функции на очень мощном языке высокого уровня который хорошо сочетается с прикладной графикой. LISP очень прост в изучении и очень гибок. [2]
Кажущаяся сложность AutoLISP отпугивает многих пользователей AutoCAD. Однако время затраченное на изучение этого языка окупается теми преимуществами которые дает его использование. В составе системы AutoCAD поставляется интерпретатор языка AutoLISP. Если при генерации AutoCADа интерпретатор AutoLISPа был подключен то он загружается в оперативную память после запуска графического редактора ACAD и доступен в течение всего сеанса работы с ACAD. Таким образом графический редактор ACAD и интерпретатор языка AutoLISP представляют собой единую систему: любая функция AutoLISPа может быть вызвана из графического редактора и любая команда редактора может быть использована в программе на AutoLISPе.
1 Определение конструкторско-технологических параметров.
Написание программы на AutoLISP требует выполнения ряда основных действий: четкой формулировки (постановки) задачи; выявление основных особенностей; взаимосвязей и количественных закономерностей; формирование графического изображения объекта; разработка программы; реализация программы.
Постановка задачи. На этом этапе определятся: графический объект который может формироваться программой при различной входной информации входные данные выходные данные (указания размеров текстовые пояснения местоположение объекта на чертеже и т.д.).
Выявление основных особенностей взаимосвязей и количественных закономерностей. На этом этапе устанавливаются взаимосвязи объектов чертежа с точки зрения эффективного их построения определяются 6 постоянные и переменные параметры формируются запросы и сообщения программно выдаваемые конструктору. Определяются способы построения отдельных элементов графического объекта и условия которые влияют на выбор способа построения элемента.
Разработка последовательности действий создания графического изображения объекта. На этом этапе подробно излагаются все действия связанные с построением графического изображения объекта возможность использования циклических процедур.
Разработка программы (функций) AutoLISP. Основной этап который включает в себя непосредственно написание программы и ее отладку в интегрированной среде разработки Visual LISP Выполнение программы на AutoLISP.
Заключительный этап реализации разработанной программы на ЭВМ.
Наиболее характерны следующие классы применений: программирование чертежей с параметризацией создание и использование графических баз данных анализ и (или) автоматическое преобразование изображений.
Программирование чертежей с параметризацией. Создаётся программа позволяющая при каждом обращении к ней формировать новый чертёж отличающийся от предыдущих чертежей построенных этой же программой размерами а также возможно и топологией: могут появиться новые элементы сечения измениться текстовая часть чертежа и т.д. Время получения чертежа с помощью такой программы может быть в десятки раз меньше времени необходимого для его создания с помощью редактора ACAD и что не менее важно получить чертёж сможет любой конструктор даже мало знакомый с командами ACAD.
Создание и использование графических баз данных. Если накоплено большое количество чертёжных файлов программ на AutoLISPе соответствующих чертёжным фрагментам деталям узлам то их можно в некотором смысле считать графической базой данных. Программы на AutoLISPе в сочетании с пользовательскими меню могут организовывать просмотр поиск подключение к объектам их частей и т.п. Хранение графических данных в виде набора программ на AutoLISPе даёт возможность в десятки и сотни раз сократить требуемую память по сравнению с памятью необходимой для хранения чертёжных файлов ACAD так как вопервых одна программа позволяет получить не один а множество чертежей во-вторых текст программы на AutoLISPе занимает на порядок меньше памяти чем файл который может быть получен в результате работы этой программы.
Анализ и (или) автоматическое преобразование изображений. Программа на AutoLISPе может воспринимать чертёж на экране построенный с помощью графического редактора и обсчитывать его. Программа также может быстро осуществить преобразование изображения на которое при работе в графическом редакторе пришлось бы затратить значительное время. Например: заменить все вставки одного типа на вставки другого типа из какого-либо чертёжного файла; перенести все объекты с одного слоя 5 на другой; повернуть все блоки на заданный угол - каждый относительно своей базовой точки и т.п.
AutoLISP обеспечивает возможность формирования чертежа за считанные
минуты. С его помощью можно расширить системы команд графического редактора ACAD и строить на основе универсального редактора специализированные САПР имеющие гораздо более простой и естественный для пользователей язык ориентированный на конкретную предметную область.
2 Определение программных параметров.
В AutoCAD входит интерпретатор AutoLISP начинающий работать если вы в командной строке в ответ на стандартную подсказку Автокада Команда: (Command:) введете открывающую скобку (. В этот момент AutoCAD настраивается на прием и вычисление выражения AutoLISP которое должно иметь форму списка т. е. начинаться открывающей скобкой и заканчиваться закрывающей а элементы списка должны отделяться друг от друга пробелами. Например для получения суммы трех чисел вы можете ввести:
(+ 224.75 16.002 89.899)
Как только вы завершите ввод своего выражения нажатием клавиши “Enter” AutoCAD вычислит указанное выражение и выдаст результат (рис. 5):
Рисунок 5 – Вычисления в AutoCAD.
0.651 (десятичная точка в вещественных числах играет роль разделителя между целой и дробной частями).
Введение в Visual LISP Visual LISP (VLISP) представляет собой интегрированную среду разработки (integrated development environment — IDE) обеспечивающую удобный и простой в использовании интерфейс который помогает создавать код отлаживать его и тестировать программы.
К числу полезных возможностей Visual LISP можно отнести следующие:
средство проверки синтаксиса Synta
отладчик поддерживающий пошаговое выполнение программы с целью локализации ошибок;
окна Inspect и Watch в которых можно просматривать значения переменных в процессе выполнения программы;
контекстно-зависимая справка;
Чтобы запустить Visual LISP нужно:
либо ввести в командной строке AutoCAD команду VLIDE
либо выбрать в падающем меню Tools Application (Инструменты Приложение) выбрать пункт Файл и загрузить файл VLIDE.ARX который находится в папке AutoCAD_R14 Vlisp.
С помощью одного из этих методов можно переключиться в Visual LISP в любой момент времени. На рисунке 6 показано окно Visual LISP.
Рисунок 6 – Окно Visual LISP
Панели инструментов Visual Lisp Вывести на экран панели инструментов можно с помощью пункта Toolbars (Панели инструментов) падающего меню View (Просмотр). С его помощью на экране отображаются следующие панели инструментов: Standard (Стандартная) Search (Поиск) Tools (Инструменты) Debug (Отладка) View (Просмотр).
Панель инструментов просмотра: View (смотри рис. 7).
Рисунок 7 – Панель инструментов просмотра.
Панель инструментов просмотра включает восемь основных кнопок:
Activate AutoCAD (Активизировать систему AutoCAD).
Select Windows (Выбрать окно).
LISP console (Выбрать консоль AutoLisp).
Inspect (Проверить).
Trace (Трассировка ошибки).
Symbol service (Обслужить символы).
Apropos (Найти слово по фрагменту).
Watch windows (Открыть окно наблюдений).
Панель инструментов Tools (Инструменты) Панель инструментов Tools включает девять основных кнопок (рис. 8):
Рисунок 8 – Панель инструментов Tools.
Перечислим данные значки слева направо согласно рисунка 8:
Load activate edit windows – Загрузить программу из активного окна редактирования.
Load selection – загрузить выделенное выражение.
Check edit windows – Проверить синтаксис программы в активном окне редактирования.
Check selection – Проверить синтаксис выделенного.
Format edit windows – Отформатировать программу в активном окне редактирования.
Format selection – Отформатировать выделенный фрагмент.
Comment block – Закомментировать блок.
Uncomment block – Разкомментировать блок.
Панель инструментов отладки Debug (смотри рис. 9)
Рисунок 9 – Панель инструментов отладки Debug.
Панель инструментов отладки включает девять основных кнопок и один индикатор в виде кнопки:
Step into – Шагнуть внутрь выражения.
Step over – Шагнуть с обходом.
Step out – Шагнуть вне выражения.
Continue – Продолжить отладку.
Quit – Выйти из текущего уровня отладки.
Reset – Вернуться на верхний уровень.
Toggle breakpoint – Установить (удалить) точку прерывания).
Add watch – Добавить выражение для просмотра.
Last break – Последнее прерывание.
Step indicator (Индикатор шага). На индикаторе отображаются круглые скобки и положение курсора показывающего что процесс отладки остановлен перед или после выражения.
Панель инструментов поиска Search (смотри рс. 10).
Рисунок 10 – Панель инструментов поиска Search.
Панель инструментов поиска включает семь основных кнопок и раскрывающийся список:
Replace – Заменить.
- Раскрывающийся список с текстовым полем для поиска символов в активном окне текстового редактора или в окне консоли.
Find toolbars string – Найти строку текстового поля.
Toggle bookmark – Установить (удалить) закладку.
Next bookmark –Перейти к следующей закладке.
Previous bookmark –Перейти к предыдущей закладке.
Clear all bookmark –Удалить все закладки. [3]
3 Секция промежуточных вычислений.
Если необходимо при разработке программы следует вычислить точки на чертеже так как через программу автолиспа можно использовать только простейшие команды автокада такие как линия круг дуга и т. д. Поэтому нам необходимо рассчитать каждую точку на нашем чертеже.
При написании программы при поиске точек необходимо использовать угол в радианах.
4 Определение координат точек отрисовки.
Найдем точки на нашей детали для дальнейших действий с ними возьмём уже имеющийся чертеж в AutoCAD и дадим произвольные переменные (смотри рис. 11).
Рисунок 11 – Чертеж с переменными.
5 Построение чертежа.
После определения основных точек необходимых для построения детали пишем программу и при вводе в командную строку команды “detal” получаем результат который можем видеть на рисунке 12.
Рисунок 12 – Чертеж детали с помощью автолисп.
6 Разработка программы.
По итогам изучения курсов лекция по данной теме мы приступаем к написанию программы все необходимое для этого мы выполнили. При написании данной программы мы будем пользоваться элементарными командами.
Перед написание рассмотри особенности данного языка.
Скобки - основной управляющий символ языка LISP. Так как язык обрабатывает списки то скобок там бесчисленное множество и 50% ошибок программистов связано с подсчетом и неверным количеством скобок в программе.
Характерная черта языка - то что выражения AutoLISP строятся тоже как списки. Это означает что сначала пишется действие а потом - аргументы этого действия.
Каждая открывающая круглая скобка должна иметь закрывающую.
Сразу после открывающей круглой скобки должен идти идентификатор операции (функции) выполняемой при вычислении выражения (имя функции).
Следующие за именем функции аргументы функции должны быть отделены от имени функции и друг от друга по крайней мере одним пробелом (дополнительные пробелы и переводы строк игнорируются так что выражение AutoLISP может занимать несколько строк что в действительности и происходит).
Каждое выражение вычисляется (выполняется) и результат возвращается. Результатом может быть нуль (nil) или результат вычисления последнего подвыражения.
С логической точки зрения любое возвращаемое значение либо истинно либо ложно. Если значение выражения вычислено быть не может и возвращается нуль то оно считается ложным. Если выражение вычисляется то оно считается истинным - не-нуль (non-nil).
Выражение AutoLISP имеет вид:
(функция аргумент1 аргумент2 . .. аргументN)
Функция - имя операции (в том числе и арифметической) которая должна быть выполнена. Число аргументов может быть больше 3. Произведение трех чисел: (* 2 3 4) Вложенные выражения: (* 4.4 (- 4.3 (+ 3.2 1.1 ))) Выражение анализируется AutoLISP слева направо пока не встретится скобка. Если встречается закрывающая скобка то завершается анализ выражения выполняется функция и вычисленное значение передается на более старший уровень вложенности или в AutoCAD. Если же встречается открывающаяся скобка AutoLISP переходит к анализу выражения более младшего уровня вложенности и
пока не завершит его анализ не перейдет к дальнейшему анализу выражения предыдущего уровня. Предел вложенности выражений - 100. [5]
Строковые переменные - совокупности букв и констант заключенных в кавычки.
Целые переменные - положительные или отрицательные целые числа (без дробей и десятичной точки). Целые числа представлены в машине двумя байтами и поэтому не могут выходить за диапазон (-32 768 32 767).
Действительные переменные - положительные или отрицательные числа с десятичной точкой. Особенность: если значение меньше 1 27 то нужно явно указывать 0 перед десятичной точкой иначе будет выдаваться сообщение об ошибке.
Переменные любого из простых типов называют атомами. Списком называется набор разделенных пробелами атомов иили списков заключенных в круглые скобки.
Комментарии обозначаются ";" в начале строки. Все последующие выражения на данной строке интерпретатором игнорируются.
7 Описание работы программы.
Листинг всей программы описан в приложении А.
Рассмотрим использующиеся:
Позволяет пользователю создать свою функцию.
(defun имя> ([аргументы>] [временные>])
имя> - любой набор символов имя новой функции.
Если перед именем добавить префикс«с:» то эту функцию можно будет использовать как стандартную команду AutoCAD.
аргументы> – символы разделенные пробелами и используемые в качестве
аргументов новой функции.
временные> – временные переменные которые используются в выражениях.
выражения> - любая последовательность выражений которые используют
аргументы временные переменные глобальные переменные (сохраняют свое
значение после завершения функции) и другие функции.
Возвращаемое значение:
результат последнего вычисляемого выражения.
(defun Rasch (a b с)
Создана новая функция Rasch. У функции два аргумента (a и b) и одна временная переменная (с). В функции два выражения: первое вычисляет произведение a и b и сохраняет его в переменной с второе рассчитывает сумму с и а.
Если функция загружена ее можно вызвать:
(setq переменная1> выражение1> [переменная2> выражение2>] [переменнаяN> выражениеN>])
Сохраняет значение выражения> в переменной>. Функция setq может использоваться с любым количеством аргументов которое должно быть обязательно четным.
переменная> - любые символы не занятые в стандартных функциях;
выражение> - любые выражения AutoLISP и имена переменных.
(setq sum (+ 1 2)) – сохраняет в переменной sum значение суммы (+ 1 2) т.е. 3.
(setq p1 (getpoint " Укажите базовую точку : ")p2 (polar p1 0 200))
Сохраняет в переменной p1 значение функции getpoint. Затем сохраняет в переменной p2 значение функции polar.
(polar точка> угол> расстояние>)
Вычисляет координаты второй точки отстоящей от первой точки заданной аргументом точка> на расстояние величина которого указана в качестве аргумента расстояние>
в направлении луча образующим с ось Х угол в радианах заданный аргументом угол>.
точка> - списки из двух или трех чисел (двухмерные или трехмерные координаты точек).
угол> - вещественное число представляющее собой угол в радианах от положительного направления оси Х.
расстояние> - число (целое вещественное).
списки из двух или трех чисел.
(polar (0 0 0) ( pi 2) 200)) возвращает (0.0 200.0 0.0).
(polar (0.0 200.0 0.0) pi 200)) возвращает (-200.0 200.0 0.0).
Функцияcommand(похожа на функциюvl-cmdf).
Функцияcommandимитирует ввод пользователя в командной строке AutoCAD.
(command [параметр1>] [параметрN>])
параметр1>] параметрN> - любые выражения которые нужно передать в командную строку (в качестве аргументов нельзя использовать функции интерактивного ввода (getint getpoint и т. п.).
Возвращаемое значение – nil
(command "_line" '(300 300) '(700 300) '(700 700) ")
— построить отрезки с координатами первой точки (X=300 Y=300) координатами второй точки (X=700 Y=300) и координатами третий точки (X=700 Y=700).
Если аргументы отсутствую (command) – это равносильно нажатию пользователем клавиши Esc>.
Позволяет пользователю задать координаты точки при помощи мыши или клавиатуры.
(getpoint [точка1>] [запрос>])
точка1> - списки из двух или трех чисел (двухмерные или трехмерные координаты точек).
запрос> - текстовая строка которая подсказывает пользователю что нужно сделать.
Если указан аргумент точка1> то от координат этой точки при указании точки с помощью мыши рисуется резиновая нить. И мы задаем свою точку ориентируясь на координаты точки заданные в аргументе точка1>.
В данной курсовой работе были выполнены чертежи по варианту а так же была разработана программа для черчения детали в 2 видах. Курсовой проект выполнен в полном объёме поставленные задачи и цели выполнены.
(DEFUN c:detal ( p1p2 p3p4 p5p6 c1 c2c3 c4c5 n1
n2 n3n4 n5n6q1 q2q3 q4q5 q6q7 q8
q9 a1a2 a3a4 b1 b2b3 b4b5 b6t1 t2
(setq p1 (getpoint " Укажите базовую точку : "))
; Запрос координат базовой точки
(setq osm (getvar "osmode"));Запоминаем привязки пользователя
(setvar "osmode" 0);отключение привязки
(setq p2 (polar p1 pопределяем координаты точек основания детали
(setq p3 (polar p2 ( pi 2) 42.5))
(setq p4 (polar p3 ( pi -2) 85))
(setq p5 (polar p4 0 140))
(setq p6 (polar p5 ( pi 2) 85))
(setq c1 (polar p1 ( pопределяем координаты отверстий
(setq c2 (polar c1 pi 54))
(setq c3 (polar c2 ( pi -2) 40))
(setq c4 (polar c3 0 108))
(setq c5 (polar c2 0 108))
(setq n1 (poопределяем координаты ребер болта
(setq n2 (polar n1 2.0944 10))
(setq n3 (polar n2 pi 10))
(setq n4 (polar n3 4.18879 10))
(setq n5 (polar n4 5.23599 10))
(setq n6 (polar n5 0 10))
(setq q1 (polar p1 pопределяем координаты 1 ребра
(setq q2 (polar q1 ( pi 2) 5))
(setq q3 (polar q2 pi 24.51))
(setq q4 (polar q3 ( pi -2) 10))
(setq q5 (polar q4 0 24.51))
(setq q6 (poопределяем координаты 2 ребра
(setq q7 (polar q6 0 24.51))
(setq q8 (polar q7 ( pi 2) 10))
(setq q9 (polar q8 pi 24.51))
(command "_lчертим основание детали
(command "_lчертим болт
(command "_lчертим 1 ребро
(command "_lчертим 2 ребро
(command "_cчертим окружность с радиусом 25
(command "_cчертим окружность с радиусом 15
(command "_cчертим окружность с радиусом 10
(command "_cчертим окружность с радиусом 5
(command "_circle" c3 5)
(command "_circle" c4 5)
(command "_circle" c5 5)
(setq a1 (polar p3 ( pопределяем координаты основания
(setq a2 (polar a1 ( pi 2) 10))
(setq a3 (polar a2 0 140))
(setq a4 (polar a3 ( pi -2) 10))
(setq b1 (poопределяем координаты 1 ребра
(setq b2 (polar b1 ( pi 4) 37.55))
(setq b3 (polar b2 ( pi -2) 26.55))
(setq b4 (poопределяем координаты 2 ребра
(setq b5 (polar b4 ( pi 2) 26.55))
(setq b6 (polar b5 ( pi -4) 37.55))
(setq t1 (polar b1 ( pопределим координаты нижнего цилиндра
(setq t2 (polar t1 ( pi 2) 14))
(setq t3 (polar t2 0 46))
(setq t4 (polar t3 ( pi -2) 14))
(setq t5 (poопределяем координаты скругления
(setq t6 (polar t5 0 50))
(setq t7 (polar t5 ( pi 2) 18))
(setq t8 (poопределяем координаты верхнего целиндра
(command "_lчертим основание
(command "_lчертим нижний цилиндр
(command "_lчертим скругление
(command "_lчертим верхний цилиндр
(setvar "osmode" osm);возвращение привязкок

icon 1809-1390.dwg

1809-1390.dwg

Свободное скачивание на сегодня

Обновление через: 23 часа 13 минут
up Наверх