
- •Предисловие
- •1. Введение в автоматизированное проектирование
- •Основные понятия и определения сапр
- •1.2. Цели и средства автоматизации процессов проектирования
- •Цели и средства автоматизации процессов проектирования
- •1.3. История развития сапр
- •1.4. Классификация программных средств сапр
- •1.5. Структура сапр
- •1.6. Принципы разработки сапр
- •Контрольные вопросы
- •2.1. Функции cad-систем
- •2.2. Системы автоматизированной разработки чертежей
- •2.3. Системы геометрического моделирования
- •Контрольные вопросы
- •3. Capp-системы
- •3.1. Функции capp-систем
- •3.2. Групповая технология в capp-системах
- •Контрольные вопросы
- •4. Системы числового программного управления
- •4.1. Введение в числовое программное управление
- •4.2. Структура систем чпу
- •4.3. Классы устройств чпу
- •4.4.Типы систем чпу
- •4.5. Основы составления управляющих программ
- •Контрольные вопросы
- •5.1. Функции cae-систем
- •5.2. Метод конечных элементов
- •5.3. Структура cae-систем
- •Контрольные вопросы
- •6. Cals-технологии
- •6.1. Основные понятия cals-технологий
- •6.2. Стандарты обмена данными между системами
- •6.3. Электронная модель изделия
- •Контрольные вопросы
- •7. Лабораторные работы по курсу «пс сапр»
- •Лабораторная работа №1
- •Контрольные вопросы
- •Лабораторная работа № 2 Тема: «Разработка трехмерной модели детали в системе AutoCad».
- •Контрольные вопросы
- •Лабораторная работа № 3 Тема: «Генерация чертежа по трехмерной модели в системе AutoCad».
- •9. Оформить графические изображения по стандартам ескд.
- •10. Отключить слой видовых рамок вэкран (vports).
- •11. Провести осевые, линии.
- •Контрольные вопросы
- •Лабораторная работа № 4
- •Функции работы со списками в языке AutoLisp
- •Выделение элементов списков
- •Формирование, анализ и редактирование наборов примитивов
- •Контрольные вопросы
- •Варианты заданий к лабораторным работам
- •Библиографический список
- •Учебно-методическое пособие
9. Оформить графические изображения по стандартам ескд.
Всем слоям с невидимыми линиями (имя вида – НID) установить тип линии DASHED. Выполнить команду SOLDRAW. Command: SOLDRAW.
Примечание. Масштаб представления изображения в виде влияет на проявление фактуры линий (пунктирная или осевая).
Выберите объекты. В ответ на последовательность запросов указывать рамки всех видов, представленных на рисунке 7.4:
S
10. Отключить слой видовых рамок вэкран (vports).
11. Провести осевые, линии.
12. Проставить размеры и соответствующие, буквенные обозначения (рисунок 7.4). Размеры следует создавать с помощью команд простановки размеров в слоях с именами DIM, устанавливая соответствующие слои текущими.
Рисунок 7.4. Чертеж детали
Задание к лабораторной работе
Построить чертеж детали в системе AutoCAD по твердотельной модели, построенной в лабораторной работе № 2. Варианты заданий приведены в конце лабораторных работ.
Контрольные вопросы
В чем преимущество генерации чертежа по трехмерной модели?
Какие команды оформления чертежа по трехмерной модели в системе AutoCAD Вы знаете?
Какие слои создаются для каждого вида при генерации чертежа?
Лабораторная работа № 4
Т
Цель работы: Получить навыки применения языка AutoLISP и разработки параметрических моделей.
Теоретические сведения
Для создания программ, в системе AutoCAD имеется мощное средство – язык AutoLISP (LISt Processing), созданный американским ученым Джоном Маккарти в 1957 в Массачусетском технологическом институте.
Наиболее характерны следующие классы применений AutoLISPа [2, 8].
1. Программирование чертежей с параметризацией. Создается программа, позволяющая при каждом обращении к ней формировать новый чертеж. При этом генерируемые параметрические изображения отличаются размерами и топологией. Это значительно сокращается время генерации чертежа.
2. Создание и использование графических баз данных. Программы на AutoLISPе в сочетании с пользовательскими меню могут организовывать просмотр, поиск, подключение к объектам файлов, соответствующих чертежным фрагментам, деталям, узлам.
3. Анализ и автоматическое преобразование изображений. Например, могут быть решены такие задачи: обнаружение пересечений трубопроводов, подсчет суммарной длины трасс, расчет центра масс и моментов инерции, выдача на печать спецификации по сборочному чертежу и т.п.
4. Расширение системы команд графического редактора AutoCAD и построение на основе универсального редактора специализированных САПР, имеющих более простой и естественный для пользователей язык, ориентированный на конкретную предметную область.
Программа на языке AutoLISP представляет собой построенный с помощью любого редактора с соблюдением правил языка текстовый файл, который хранится на диске под определенным именем. Он может быть загружен в ОЗУ в ходе сеанса графического диалога в системе AutoCAD и может быть выполнен путем соответствующего ответа на подсказку AutoCAD. Файл программы имеет расширение lsp.
Имеются два типа объектов в AutoLISPе атомы и списки.
Атомы – это элементарные объекты, из которых формируются выражения AutoLISPа.
Список – это тип данных, который содержит набор разделённых с пробелами атомов и вложенных (не всегда) в список подсписков.
Примеры
(х у z) – список состоит из трех символов-атомов.
(а (b с) d) – список состоит из двух символов-атомов и одного подсписка, состоящего из двух атомов.
Типы данных в AutoLISPе. AutoLISP поддерживает несколько различных типов данных:
списки;
символы;
строковые константы;
действительные числа;
целые числа;
файловые дескрипторы;
имена примитивов AutoCAD;
наборы примитивов AutoCADа;
встроенные функции.
Символы состоят из букв, цифр и специальных символов. Имена-символы не могут начинаться с цифры. Они могут обозначать различные объекты, другие символы или числа.
Строковые константы определяют значения переменных, задающих тексты. Строковые константы состоят из символов, слов, обозначений, предложений. Существует максимальная длина для строковых констант, равная 100 символам. Форма строковых констант представляет последовательность символов-атомов, взятых в кавычки.
Пример: "Сталь 45".
Действительные числа представлены как числа с плавающей запятой двойной точности.
Целые числа – это 32-битовые числа в пределах от -2147483648 до +2147483647.
Дескрипторы файлов – это переменные, применяемые для открытия файлов с целью ввода или вывода информации. Дескриптор файла определяет файл, содержит информацию о режиме доступа и некоторые системные переменные.
Имена примитивов – указатели на примитив в текущем сеансе редактора AutoCAD. Имена примитивов изменяются от сеанса к сеансу редактора.
Наборы примитивов – совокупность имен примитивов, сохраненных во временном файле.
Встроенные функции – это внутренние функции системы AutoCAD.
Функции присвоения – функции, которые позволяют присваивать переменным их значения, выражения, задавать и определять значения системных переменных.
Системные переменные – это переменные, используемые для настройки параметров графической системы, каждая из которых представляется определенным типом данных. Задание системных переменных осуществляют с помощью специальных функций.
Создание новой функции
В языке AutoLISP возможно создание новой функции. Описание новой функции в программе должно предшествовать обращению к этой функции. Новая функция создается с помощью функции DEFUN (DEfine FUNction):
(DEFUN <имя функции> [<аргумент>...] [/<локальная переменная>...] <выражение>).
Здесь <имя функции> – это имя новой функции. Нельзя использовать имя встроенной функции. Список аргументов – это список имен, обозначающих те данные, которые будут посылаться в функцию перед ее выполнением. Локальные переменные – это переменные, определение которых действует только внутри описываемой функции. <Выражение> это любая запись, выполненная по правилам языка AutoLISP. Выражение показывает, какие действия должна выполнять описываемая функция.
Пример
;Программа 1. Вычисление суммы SIN(A) + COS(A)
(DEFUN SINCOS (A); имя функции и список аргументов
( + (SIN A) (COS А)); выражение: SIN(A) + COS(A)
) ;конец программы
Текст созданной функции записывается в файл с расширением *.lsp. Для загрузки файла в систему AutoCAD нужно использовать команду (load <имя файла>).
Использование команд системы AutoCAD в AutoLISPе
Любая команда системы AutoCAD может быть включена в программу на AutoLISPе, что позволяет строить изображения из программы автоматически или с участием пользователя. Это делается с помощью функции COMMAND.
(COMMAND "<имя команды >" [ <аргумент>...]). <Имя команды > задает имя требуемой команды, определенной AutoCAD. Если командой предусмотрены аргументы, то их значения перечисляются. Аргументами могут быть координаты точек, опции и др. Аргументы перечисляются в той последовательности, в которой они задаются при формировании команд в режиме диалога.
Пример: (COMMAND "LINE" "1,1" "10, 10" "").
Основные функции присвоения
(SETQ <переменная1> <выражение1> <переменная2> <выражение2>...). Функция устанавливает в <переменую1> значение <выражения1>, в <переменную2> – значение <выражения2> и т.д.
(QUOTE <выражение>) – функция возвращает выражение, не выполняя его. Функция обычно используется для того, чтобы в переменную нужно было записать список.
Пример: (SETQ a (QUOTE (0.25 "АБВ" 46 ))).
В сокращенной записи функции QUOTE используется апостроф:
(SETQ a ( ' (0.25 "АБВ" 46 ))).
(SETVAR <имя переменной> <значение>) – функция присвоения системной переменной указанного <значение>. При этом в записи функции setvar <имя переменной> заключают в кавычки.
Пример: (SETVAR "DIMTXT" 5) – устанавливается размер шрифта размерных чисел, равный 5.
Ввод значений переменных пользователем
Для ввода значений переменных пользователем служат функции типа GET. К ним относятся функции:
(GETINT [<подсказка>]) – ввод целого числа;
(GETREAL [<подсказка>]) – ввод вещественного числа;
(GETDIST [<точка>] [<подсказка>]) – функция создает паузу для того, чтобы пользователь ввел расстояние;
(GETANGLE [<точка>] [<подсказка>]) – функция создает паузу для того, чтобы пользователь ввел угол. Функция всегда возвращает угол в радианах;
(GETPOINT [<точка>] [<подсказка>]) – функция запрашивает ввода координат точки. Можно ввести точку путем указания ее на экране или записав координаты в текущих единицах измерения;
(GETVAR <имя переменной>) – функция возвращает значение системной переменной AutoCADa. Имя переменной должно быть заключено в кавычки. Например, (GETVAR "FILLETRAD") возвращает 0.250000.
Пример
;Построение окружности
(SETQ PC (GETPOINT "\nВведите центр:"))
;Ввод центра
(SETQ R (GETDIST PC "\nВведите радиус:"))
; Ввод радиуса
(COMMAND "CIRCLE" PC R)
Функции, выполняющие арифметические операции
(+ <число1> <число2> ...) – сумма всех <чисел>, которые могут быть как целыми, так и действительными. Если все числа целые, то и результат представляет целое число.
(- <число1> <число2> ...) – вычитание из <числа1> суммы остальных <чисел>. Если задано одно число, то оно вычитается из 0.
(* <число1> <число2> ...) – произведение всех <чисел>.
(/ <число1> <число2> ...) – деление первого числа на произведение остальных.
(MAX <число1> <число2> ...) определение наибольшего числа из заданных чисел.
(MIN <число1> <число2> ...) − определениe наименьшего числа из заданных чисел.
(SQRT <число>) − извлечение квадратного корня из <числа> и представление его как действительного числа.
(ЕХР <число>) − функция для вычисления e в степени <число>.
(EXPT <основание> <степень>) – вычисление <основания>, возведенного в указанную <степень>.
(LOG <число>) − вычисление натурального логарифма <числа>.
(FIX <число>) – преобразование <числа> в целое. Дробная часть действительного числа отбрасывается.
(FLOAT <число>) – преобразование заданного <числа> в действительное.
(СОS <угол>) − вычисление косинуса <угла>, заданного в радианах.
(SIN <угол>) – вычисление синуса <угла>, заданного в радианах.
(ATAN <число1> <число2>) – вычисление арктангенса(<число1>/<число2>) в радианах. Если <число2> не указано, то вычисляется arctg <числа1>. При этом область допустимых значений от -pi до + pi.
(ABS <число>) − вычисление абсолютного значения <числа>.
Построение параметрических изображений
Проектируемое изделие состоит из совокупности геометрических объектов. В процессе проектирования изделий необходимо определять геометрические параметры указанных объектов (длину, углы, точки пересечения и т. п.). Для этого в AutoLISPе существуют следующие встроенные функции.
(DISTANCE <точка1> <точка2>) – функция возвращает действительное число, равное расстоянию между < точкой1 > и <точкой2>.
(POLAR <точка> <угол> <расстояние>) – функция вычисляет координаты новой точки, находящейся от заданной <точки> на некотором <расстоянии> под <углом>, который задается в радианах и измеряется против часовой стрелки относительно координатной оси X.
(ANGLE <точка1> <точка2>) – функция вычисления угла в радианах, образованного вектором, направленным из <точки1> в <точку2>, и осью X. Этот угол измеряется против часовой стрелки.
(INTERS <точка1> <точка2> <точка3> <точка4> [<С>]) – функция вычисления точки пересечения двух отрезков, заданных <точкой1>, <точкой2> и <точкой3>, <точкой4>. Если признак <C> равен NIL, то будет определена точка пересечения линий бесконечной длины, наложенных на заданные отрезки. Если <С> имеет любое значение, отличное от NIL, или если аргумент <С> вообще отсутствует, то ищется точка пересечения только внутри отрезков. Если точка пересечения в этой ситуации не найдена, то функция INTERS возвращает NIL.
При получении параметрических изображений вначале выполняют расчет узловых точек данных изображений, которые в примере ниже имеют обозначения р1, р2,…. рn. Далее по расчетным узловым точкам необходимо построить в среде AutoCAD параметрические изображения видов, разрезов, сечений деталей и конструкций.
Пример. Написать программу на языке AutoLISP, выполняющую построение параметрического изображения (рис. 7.5).
Рисунок 7.5. Параметрическая модель изображения
(defun kontur () ;функция построения параметрических изображений;
;расчет точек главного вида
(setq
x 50 y 50 l 100 l1 50 h1 25 h 50 d 20 u 0.78
p1 (list x y)
p2 (polar p1 0 l)
p3 (polar p2 1.57 h)
p4 (polar p3 3.14 5)
р5 (polar p1 u 5)
р6 (inters p1 p5 p3 p4 nil)
р7 (list (+ x l1) (+ y h1))
р8 (polar p1 4.71 10)
р9 (polar p1 4.71 20)
) ; окончание функции - setq
; формирование изображения главного вида
(command "line" p1 p2 p3 p6 p1 "" "circle" p7 (/ d 2) )
; формирование изображения разреза
(command "рline" p10 p11 p12 p13 p10 "")
(command "рline" p14 p15 p16 p17 p14 "")
;нанесение изображения штриховки на разрезе
(command "hatch" "jis_wood" "10" "0" p10 р14 "")
(command "line" p15 p10 "" "line" p16 p13 "" )
;нанесение размеров на чертеже
(command "dim" "horiz" P1 P2 P9 "" "horiz" P1 P7 P8 ""
"vertical" P3 P2 P19 ""
" vertical " p13 p16 p18 (strcat "%%c" (rtos d 2 0)) "exit")
); окончание функции – kontur