Разработка средствами AutoCAD конструкторской документации сборочного чертежа узла пробкового крана
Министерство образования и науки,
молодежи и спорта Украины
Национальный аэрокосмический
университет им. Н.Е. Жуковского
Харьковский авиационный институт
Кафедра “Информационных технологий
проектирования”
Пояснительная записка к курсовой
работе
по учебной дисциплине
Программное обеспечение
информационных технологий проектирования
Тема:
Разработка средствами AutoCAD
конструкторской документации сборочного чертежа узла пробкового крана
Выполнила: Шляга С.В.
студентка 126 ст. гр.
Проверил: доц. каф. 105
Ефремов А.Ю.
Харьков - 2014 г.
СОДЕРЖАНИЕ
Задание
. Описание
узла
.
Параметризация геометрии детали
. Описание
интерфейса программы
Выводы
Список
использованной литературы
Приложения
ЗАДАНИЕ
1. Проанализировать функциональное
назначение пробкового крана в целом и входящих в него деталей.
2. Создать в соответствии со стандартом
средствами AutoCAD конструкторскую документацию в виде
сборочного чертежа узла.
3. Вывести твердую копию созданного
сборочного чертежа.
4. Проанализировать геометрию детали -
гайка.
5. Провести полную параметризацию
геометрии детали.
6. С помощью языка AutoLISP разработать программу вывода чертежа
детали. Программа должна выполнять следующие функции:
· ввод в диалоговом режиме параметров детали;
· проверку корректности задания параметров;
· построение необходимых видов чертежа;
· вывод размерных блоков, соответствующих заданным значениям
параметров;
· вывод рамки и углового штампа.
1. Вывести твердую копию чертежа детали.
1. ОПИСАНИЕ УЗЛА
Конусный
кран - разновидность трубопроводного крана
<#"774727.files/image001.gif">
ПРИЛОЖЕНИЕ 2
Исходный текст программы
(Setq r (getint
"Введите размер ключа {16..32}> " ))
(While (or (= r nil) (< r 16) (> r 32))
(Setq r (getint
"Введите размер ключа {16..32}> " ))
)
(Setq h (getint
"Введите высоту гайки {2..16}> " ))
(While (or (= h nil) (< h 2) (> h 16))
(Setq h (getint "Введите высоту гайки {2..16}> "
))
)
(Setq n (getint
"Введите количество граней {4,6,8}> " ))
(While (or (= n nil) (< n 0) (= n 0) (= n 1) (= n 2)(= n
3)(= n 5)(= n 7) (= n 9)
(> n 9)) ;не бейте меня
(Setq n (getint
"Введите количество граней {4,6,8}> " ))
)
;#############################################################
#######
(command "-linetype" "set"
"Dashed2" "")
(setq p1 (list 113 275))
(setq p2 (list 113 64))
(command "line" p1 p2 "")
;#############################################################
#######
;constants
(setq ddiam (/ r 2)(/ (* r 0.6) 2)_ra (* ddn 0.66))
(setq my_11 (* (sqrt 3) 2) my_22 (* 3 ddiam) vp_rad (/ my_22
my_11))
(setq Lo (* vp_rad 0.55))
(setq fX 113197_os (list fx fy)_os (list fx (+ fy vp_rad)))
;#############################################################
######
;coordinates
(setq mx (+(+ fx (/ (* r 0.6) 2)) 2)(+ fy 2))
(setq my (+ my Lo))
(setq mx (- mx 2)(+ my 2))
(setq my (+ my 7))
(setq p1 (list fx fy))
(setq p2 (list (+ fx (/ (* r 0.6) 2)) fy))
(setq p1 p2)
(setq p1 p2)
(setq p2 (list mx (+ my Lo)))
(setq p1 p2)
(setq p2 (list (- mx 2) (+ my 2)) )
(setq p1 p2)
(setq p2 (list mx (+ my 2)) )
(setq p2 (list fx (+ my 2)))
;#############################################################
#######
;рисование :)
(command "-linetype" "set"
"ByLayer" "")
;основной вид
(setq vn_rad (* ddn 0.66))
;===================нижняя часть крышки
(setq p1 p2)
(setq p2 (list (+ fx ddiam) (+ my 2)))
(setq my1 my)
(command "line" p1 p2 "")
(Setq line1 (entlast))
;========================высота крышки
(setq p1 p2)
(setq p2 (list (+ fx ddiam) (+ 2 (+ my h))))
(command "line" p1 p2 "")
(Setq line3 (entlast))
;==================верхняя часть крышки
(setq p1 p2)
(setq p2 (list fx (+ (+ my h) 2)))
(command "line" p1 p2 "")
(Setq line5 (entlast))
;========================фронтальная грань
(command "-linetype" "set"
"Dashed2" "")
(command "line" (list (+ fx vn_rad) (+ my 2)) (list
(+ fx vn_rad) (+ my h 2))
"")
(Setq line9 (entlast))
(command "-linetype" "set"
"ByLayer" "")
(command "mirror" Line1 Line3 Line5
Line9"" n_os v_os "N")
(if (= n 4)
(PROGN
(setq p1 (list (+ fx ddiam) (+ my h)))
(setq p3 (list (- fx ddiam) (+ my h)))
(command "arc" p1 p2 p3)
(setq arc101 (entlast))
(setq p2 (list fx (+ my 2)))
(setq p1 (list (+ fx ddiam) (+ my 4)))
(setq p3 (list (- fx ddiam) (+ my 4)))
(command "arc" p1 p2 p3)
(setq arc102 (entlast))
)
(if (= n 6)
(PROGN
(setq p1 (list fx (+ my h)))
(setq p2 (list (+ (/ ddiam 2) fx) (+ my h 2)))
(setq p3 (list (+ ddiam fx) (+ my h)))
(command "arc" p1 p2 p3)
(setq arc103 (entlast))
(setq p1 (list fx (+ my 4)))
(setq p2 (list (+ (/ ddiam 2) fx) (+ my 2)))
(setq p3 (list (+ ddiam fx) (+ my 4) ))
(command "arc" p1 p2 p3)
(setq arc104 (entlast))
(setq p5 (list fx my))
(setq p6 (list fx (+ my h)))
(command "line" p5 p6 "")
(Setq line10 (entlast))
(command "mirror" arc103 arc104 line10 ""
n_os v_os "N")
)
)
(if (= n 8)
(PROGN
(setq px (list (+ fx (* ddiam 0.207105 2)) (+ my h)))
(setq p2 (list (+ fx xx) (+ my h 1.5)))
(setq p3 (list (+ ddiam fx) (+ my h)))
(command "arc" px p2 p3)
(setq arc105 (entlast))
(setq p1 (list (- fx (* ddiam 0.207105 2)) (+ my h)))
(setq p2 (list fx (+ my h 2)))
(setq p3 (list (+ fx (* ddiam 0.207105 2)) (+ my h)))
(command "arc" p1 p2 p3)
(setq arc106 (entlast))
(setq px (list (+ fx (* ddiam 0.207105 2)) (+ my 4)))
(setq xx (+ (/ (- ddiam 0.207105) 2) 0.207105))
(setq p2 (list (+ fx xx) (+ my 2.3)))
(setq p3 (list (+ ddiam fx) (+ my 4)))
(command "arc" px p2 p3)
(setq arc107 (entlast))
(setq p1 (list (- fx (* ddiam 0.207105 2)) (+ my 4)))
(setq p2 (list fx (+ my 2.3)))
(setq p3 (list (+ fx (* ddiam 0.207105 2)) (+ my 4)))
(command "arc" p1 p2 p3)
(setq arc108 (entlast))
программа конструкторский сборочный кран
(setq p5 (list (+ fx (* ddiam 0.207105 2)) (+ my 2)))
(setq p6 (list (+ fx (* ddiam 0.207105 2)) (+ my h 2)))
(command "line" p5 p6 "")
(Setq line11 (entlast))
(command "mirror" arc105 arc106 arc107 arc108
line11 "" n_os v_os "N")
)
)
; отзеркаливание
;(command "mirror" Line1 Line2 Line3 Line4 Line5
"" n_os v_os "N")
;вид сверху
;фиксированные координаты вида
(setq n_fx 113)
(setq n_fy 123)
;=====================внешняя окружность
(setq cen (list n_fx n_fy))
;(command "circle" cen r )
;(setq my_11 (* (sqrt 3) 2) my_22 (* 3 ddiam) vp_rad (/ my_22
my_11))
(command "circle" cen ddiam )
;==========================шестигранник
;(command "polygon" n cen "C" ddiam)
(command "polygon" n cen "C" (list (+
ddiam n_fx) n_fy))
;===================внутренняя окружность
;(setq vn_rad (* ddn 0.66))
(command "circle" cen vn_rad )
(setq cir_m (entlast))
;#############################################################
#######
;образмеривание вида сверху
(setq ext1 (list (+ n_fx ddiam) n_fy))
(setq ext2 (list (- n_fx ddiam) n_fy))
(setq ext3 (list n_fx (- n_fy (* 2 ddiam))))
(command "dimlinear" ext1 ext2 ext3)
(setq p2 (list (+ 20 (+ n_fx ddiam)) (+ n_fy ddiam) ))
(setq cp2 (list (+ n_fx m_ra) n_fy ))
(command "dimdiameter" cp2 p2 )
;образмеривание основного вида
(setq ext4 (list fx (+ my 2)))
(setq ext5 (list fx (+ my h 2)))
(setq ext6 (list (- fx (* 2 ddiam)) (+ my 2) ))
;(setq ext4 (list (+ fx ddiam) (+ my 2)))
;(setq ext5 (list (+ fx ddiam) (+ my h 2)))
;(setq ext6 (list (+ ddiam 10) (+ my (/ h 2))))
(command "dimlinear" ext4 ext5 ext6)
(command "-linetype" "set"
"Dashed2" "")
(setq p1 (list 42 123))
(setq p2 (list 178 123))
(command "line" p1 p2 "")
;#############################################################
#########
;*************************************************************
**********
(command "-linetype" "set"
"ByLayer" "")
(command "limits" '(0 0) '(210 297))
(setq ln_ygol '(0 0))
(setq pv_ygol '(210 297))
(command "rectangle" ln_ygol pv_ygol)
(command "zoom" "Extents")
;*************************************************************
**********
;прорисовываем рамку
(setq ln_ramka '(20 5))
(setq pv_ramka '(205 292))
(command "rectangle" ln_ramka pv_ramka)
(setq X1 (nth 0 ln_ramka))
(setq Y1 (nth 1 ln_ramka))
(setq X2 (nth 0 pv_ramka))
(setq Y2 (nth 1 pv_ramka))
;*************************************************************
**********
;основная надпись
;*************************************************************
**********
;вертикальные линии
(Setq p1 (list X1 (+ Y1 273)))
(Setq p2 (list (+ X1 70) (+ Y1 273)))
;(command "line" p1 p2 "")
;*************************************************************
**********
(Setq p1 (list (+ X1 70) (+ Y1 273)))
(Setq p2 (list (+ X1 70) (+ Y1 287)))
;(command "line" p1 p2 "")
;*************************************************************
**********
(Setq p1 (list X1 (+ Y1 55)))
(Setq p2 (list X2 (+ Y1 55)))
(command "line" p1 p2 "")
;*************************************************************
**********
(Setq p1 (list (+ X1 7) (+ Y1 55)))
(Setq p2 (list (+ X1 7) (+ Y1 30)))
(command "line" p1 p2 "")
;*************************************************************
**********
(Setq p1 (list (+ X1 17) (+ Y1 55)))
(Setq p2 (list (+ X1 17) Y1))
(command "line" p1 p2 "")
;*************************************************************
**********
(Setq p1 (list (+ X1 40) (+ Y1 55)))
(Setq p2 (list (+ X1 40) Y1))
(command "line" p1 p2 "")
;*************************************************************
**********
(Setq p1 (list (+ X1 55) (+ Y1 55)))
(Setq p2 (list (+ X1 55) Y1))
(command "line" p1 p2 "")
;***********************************************************************
(Setq p1 (list (+ X1 65) (+ Y1 55)))
(Setq p2 (list (+ X1 65) Y1))
(command "line" p1 p2 "")
;***********************************************************************
(Setq p1 (list (- X2 50) (+ Y1 55)))
(Setq p2 (list (- X2 50) Y1))
(command "line" p1 p2 "")
;***********************************************************************
(Setq p1 (list (- X2 45) (+ Y1 20)))
(Setq p2 (list (- X2 45) (+ Y1 35)))
(command "line" p1 p2 "")
;***********************************************************************
(Setq p2 (list (- X2 40) (+ Y1 35)))
(command "line" p1 p2 "")
;***********************************************************************
(Setq p1 (list (- X2 35) (+ Y1 20)))
(Setq p2 (list (- X2 35) (+ Y1 40)))
(command "line" p1 p2 "")
;***********************************************************************
(Setq p1 (list (- X2 30) (+ Y1 15)))
(Setq p2 (list (- X2 30) (+ Y1 20)))
(command "line" p1 p2 "")
;***********************************************************************
(Setq p1 (list (- X2 18) (+ Y1 20)))
(Setq p2 (list (- X2 18) (+ Y1 40)))
(command "line" p1 p2 "")
;***********************************************************************
;горизонтальные линии
(Setq i 1)
(while (< i 11)
(Setq p1 (list X1 (+ Y1 (* i 5))))
(Setq p2 (list (+ X1 65) (+ Y1 (* i 5))))
(command "line" p1 p2 "")
(Setq i (+ i 1))
)
;***********************************************************************
(Setq p1 (list (+ X1 65) (+ Y1 40)))
(Setq p2 (list X2 (+ Y1 40)))
(command "line" p1 p2 "")
;***********************************************************************
(Setq p1 (list (+ X1 65) (+ Y1 15)))
(Setq p2 (list X2 (+ Y1 15)))
(command "line" p1 p2 "")
;***********************************************************************
(Setq p1 (list (- X2 50) (+ Y1 35)))
(Setq p2 (list X2 (+ Y1 35)))
(command "line" p1 p2 "")
;***********************************************************************
(Setq p1 (list (- X2 50) (+ Y1 20)))
(Setq p2 (list X2 (+ Y1 20)))
(command "line" p1 p2 "")
;***********************************************************************
;настройка стиля шрифта
(command "-style" "J_STYLE" ""
0 0.45 20 "N" "N" "N")
;заполняем штамп надписями
(setq t1 (list (- X2 36) (+ Y1 4))) (command "text"
t1 6 0 "ХАИ гр.126ст")
(Setq t1 (list (+ X1 2) (+ Y1 26))) (command "text"
t1 3 0 "Разраб")
(Setq t1 (list (+ X1 2) (+ Y1 21))) (command "text"
t1 3 0 "Пров")
(Setq t1 (list (+ X1 2) (+ Y1 16))) (command "text"
t1 3 0 "Т. контр.")
(Setq t1 (list (+ X1 2) (+ Y1 6))) (command "text"
t1 3 0 "Н. контр.")
(Setq t1 (list (+ X1 2) (+ Y1 1))) (command "text"
t1 3 0 "Утв.")
(Setq t1 (list (+ X1 18) (+ Y1 26))) (command
"text" t1 3 0 "Шляга С.В.")
(Setq t1 (list (+ X1 18) (+ Y1 21))) (command
"text" t1 3 0 "Ефремов А.Ю.")
(Setq t1 (list (+ X1 72) (+ Y1 21))) (command
"text" t1 8 0 "Гайка")
(Setq t1 (list (+ X1 2) (+ Y1 36))) (command "text"
t1 3 0 "Изм.")
(Setq t1 (list (+ X1 9) (+ Y1 36))) (command "text"
t1 3 0 "Лист")
(Setq t1 (list (+ X1 21) (+ Y1 36))) (command
"text" t1 3 0 "N докум.")
(Setq t1 (list (+ X1 43) (+ Y1 36))) (command
"text" t1 3 0 "Подпись")
(Setq t1 (list (+ X1 57) (+ Y1 36))) (command
"text" t1 3 0 "Дата")
(Setq t1 (list (- X2 46) (+ Y1 36))) (command
"text" t1 3 0 "Лит.")
(Setq t1 (list (- X2 32) (+ Y1 36))) (command
"text" t1 3 0 "Масса")
(Setq t1 (list (- X2 15) (+ Y1 36))) (command
"text" t1 3 0 "Масштаб")
(Setq t1 (list (- X2 46) (+ Y1 16))) (command
"text" t1 3 0 "Лист")
(Setq t1 (list (- X2 25) (+ Y1 16))) (command
"text" t1 3 0 "Листов 1")
ПРИЛОЖЕНИЕ 3
Твердая копия чертежа пробкового крана
ПРИЛОЖЕНИЕ 4
Твердая копия чертежа гайки
Тест 1
Введите размер под ключ (16..32) > 16
Введите количество граней (4, 6, 8) > 4
Результат:
Тест 2
Введите размер под ключ (16..32) > 32
Введите высоту гайки (2..16) > 16
Введите количество граней (4, 6, 8) > 6
Результат: