русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Исходный текст


Дата добавления: 2015-08-06; просмотров: 614; Нарушение авторских прав


 

(defun new () ; очистка экрана, загрузка линий и первого слоя

; загрузка основных линий

(command "_linetype" "З" " ACAD_ISO10W100" "") (command ) (command )

(command "_linetype" "З" "JS_02_2.0" "") (command ) (command )

(command "_linetype" "З" "Continuous" "") (command ) (command )

(command "_erase" "В" "")

 

(command "_layer" "С" "Контур" "") (command ) (command )

(command "_layer" "Т" "Continuous" " Контур " "") (command ) (command )

(command "_layer" "Е" 0.8 " Контур " "") (command ) (command )

 

(command "_layer" "С" "Оси" "") (command ) (command )

(command "_layer" "Т" "ACAD_ISO10W100" " Оси " "") (command ) (command )

(command "_layer" "Е" 0.1 " Оси " "") (command ) (command )

 

(command "_layer" "С" "Размеры" "") (command ) (command )

(command "_layer" "Т" "Continuous" " Размеры " "") (command ) (command )

(command "_layer" "Е" 0.3 " Размеры " "") (command ) (command )

 

(command "_layer" "С" "Штриховка" "") (command ) (command )

(command "_layer" "Т" "Continuous" " Штриховка " "") (command ) (command )

(command "_layer" "Е" 0.3 " Штриховка " "") (command ) (command )



)

 

(defun v (/ p0 L1 L2 L3 L4 L6 L7 L8 L9)

; очистка экрана, настройка линий

(new)

; УСТАНОВКА НАЧАЛЬНОЙ ТОЧКИ

(setq

p0 (GetPoint " Введите начальные координаты ")

x (nth 0 p0)

y (nth 1 p0)

)

 

; ПОЛУЧЕНИЕ РАЗМЕРОВ ДЕТАЛИ от пользователя, если размеры невведены, то беруться по умолчанию

(setq L1 (GetReal "\nВведите L1 - высота (50): ")) (if (= L1 nil) (progn (setq L1 50.0) ))

(setq L2 (GetReal "\nВведите L2 - длина (32): ")) (if (= L2 nil) (progn (setq L2 32.0) ))

(setq L3 (GetReal "\nВведите L3 - ширина (40): ")) (if (= L3 nil) (progn (setq L3 40.0) ))

(setq L4 (GetReal "\nВведите L4 - высота платформы (7): ")) (if (= L4 nil) (progn (setq L4 7.0) ))

(setq L6 (GetReal "\nВведите L6 - длина цилиндра и выступа (18): ")) (if (= L6 nil) (progn (setq L6 18.0) ))

(setq L7 (GetReal "\nВведите L7 - толщина стенки (7): ")) (if (= L7 nil) (progn (setq L7 7.0) ))

(setq L8 (GetReal "\nВведите L8 - диаметр цилиндра (30): ")) (if (= L8 nil) (progn (setq L8 30.0) ))

(setq L9 (GetReal "\nВведите L9 - диаметр отверстия (22): ")) (if (= L9 nil) (progn (setq L9 22.0) ))

 

; АНАЛИЗ введенных размеров

; высота

(if (<= L1 0)

(progn

(setq L1 0)

(setq L4 0)

(setq L9 0)

)

)

; длина

(if (<= L2 0)

(progn

(setq L1 0)

(setq L2 0)

(setq L3 0)

(setq L4 0)

(setq L6 0)

(setq L7 0)

(setq L8 0)

(setq L9 0)

)

)

; ширина

(if (<= L3 0)

(progn

(setq L1 0)

(setq L2 0)

(setq L3 0)

(setq L4 0)

(setq L6 0)

(setq L7 0)

(setq L8 0)

(setq L9 0)

)

)

; толщина стенки

(if (<= L7 0)

(progn

(setq L7 0)

)

)

; если толщина стенки больше длины детали

(if (> L7 L2)

(progn

(setq L6 0)

(setq L7 L2)

(setq L8 0)

)

)

; чтоб все поместить в длину детали подгоется длина цилиндра

(if (> L6 (- L2 L7))

(progn

(setq L6 (- L2 L7))

)

)

; если нету длины цилиндра, когда ЕСТЬ стенка

(if (and (<= L6 0) (/= L7 0))

(progn

(setq L6 0)

(setq L8 0)

)

)

; если нету длины цилиндра, когда НЕТУ стенки

(if (and (<= L6 0) (= L7 0))

(progn

(setq L6 0)

)

)

; диаметр отверстия

(if (<= L9 0)

(progn

(setq L9 0)

)

)

; если диаметр отверстия больше ширины детали

(if (> L9 L3)

(progn

(setq L9 (- L3 1))

)

)

; диаметр цилиндра

(if (<= L8 0)

(progn

(setq L6 0)

(setq L8 0)

)

)

; если диаметр цилиндра больше ширины детали, то диаметр цилиндра = ширине детали

(if (> L8 L3)

(progn

(setq L8 L3)

)

)

; высота платформы

(if (<= L4 0)

(progn

(setq L4 0)

)

)

; если высоты платформы нет, то длина детали = толщине стенки

(if (= L4 0)

(progn

(setq L2 L7)

)

)

; если высота платформы больше высоты детали

(if (> L4 L1)

(progn

(setq L6 (- L1 (/ L8 2)))

)

)

; ВЫЧИСЛЕНИЕ ТОЧЕК;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; точки построения РАЗРЕЗА

(setq p1 (list (car p0) (+ (cadr p0) L4) ))

(setq p2 (list (- (+ (car p1) L2) L7) (cadr p1) ))

(setq p3 (list (car p2) (- (+ (cadr p0) L1 (/ L8 2)) L8) ))

(setq p4 (list (- (car p3) L6) (cadr p3) ))

(setq p5 (list (car p4) (+ (cadr p4) L8) ))

(setq p6 (list (+ (car p5) L6) (cadr p5) ))

(setq p7 (list (+ (car p0) (- L2 L7)) (+ (cadr p0) L1 (/ L3 2)) ))

(setq p8 (list (+ (car p0) L2) (cadr p7) ))

(setq p9 (list (car p8) (cadr p0) ))

(setq p10 (list (+ (car p0) L2) (+ (cadr p0) (- L1 (/ L9 2)))))

(setq p11 (list (+ (car p0) L2) (+ (cadr p0) (+ L1 (/ L9 2)) )))

(setq p12 (list (- (car p11) (+ L6 L7)) (cadr p11) ))

(setq p13 (list (- (car p10) (+ L6 L7)) (cadr p10) ))

; осевые

(setq p14 (list (car p13) (+ (cadr p0) L1) ))

(setq p15 (list (car p9) (cadr p14) ))

; точки штриховки

(setq p16 (list (+ (car p0) 1) (+ (cadr p0) 1) ))

(setq p17 (list (- (car p6) 1) (- (cadr p6) 1) ))

(setq p18(list (- (car p8) 1) (- (cadr p8) 1) ))

;обычный чертеж;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;вычисление точек

(setq t0 (list (+ (car p9) L3 30) (cadr p9) )); отступ между чертежами

(setq t1 (list (car t0) (+ (cadr t0) L1) ))

(setq t2 (list (+ (car t0) L3) (cadr t1) ))

(setq t3 (list (car t2) (- (cadr t2) L1) ))

(setq t4 (list (car t3) (+ (cadr t3) L4) ))

(setq t5 (list (car t0) (+ (cadr t0) L4) ))

(setq t6 (list (+ (car t0) (/ L3 2)) (+ (cadr t0) L1) ))

(setq t7 (list (+ (car t0) (/ L3 2)) (+ (cadr t0) L1 (/ L3 2)) ))

;оси

(setq t8 (list (car t7) (cadr t0) ))

(setq t9 (list (-(car t6) (/ L8 2)) (cadr t6) ))

(setq t10 (list (+ (car t6)(/ L8 2)) (+ (cadr t6)) ))

(setq t11 (list (car t6) (+ (cadr t6) (/ L8 2)) ))

(setq t12 (list (car t6) (- (cadr t6) (/ L8 2)) ))

(setq t13 (list (car t6) (+ (cadr t6) (/ L9 2)) ))

(setq t14 (list (+ (car t6) (/ L9 2)) (cadr t6) ))

(setq t15 (list (car t6) (- (cadr t6) (/ L9 2)) ))

(setq t16 (list (- (car t6) (/ L9 2)) (cadr t6) ))

; РИСОВАНИЕ разреза

(command "_layer" "У" "Контур" "") (command ) (command )

; КОНТУР

(command "ОТРЕЗОК" p0 p1 "")

(command "ОТРЕЗОК" p1 p2 "")

(command "ОТРЕЗОК" p2 p3 "")

(if (/= L6 0)

(progn

(command "ОТРЕЗОК" p3 p4 "")

(command "ОТРЕЗОК" p4 p13 "")

(command "ОТРЕЗОК" p13 p14 "")

(command "ОТРЕЗОК" p14 p12 "")

(command "ОТРЕЗОК" p12 p5 "")

(command "ОТРЕЗОК" p5 p6 "")

)

)

(command "ОТРЕЗОК" p6 p7 "")

(command "ОТРЕЗОК" p7 p8 "")

(command "ОТРЕЗОК" p8 p11 "")

(command "ОТРЕЗОК" p11 p15 "")

(command "ОТРЕЗОК" p15 p10 "")

(command "ОТРЕЗОК" p10 p9 "")

(command "ОТРЕЗОК" p9 p0 "")

(if (> L9 0)

(progn

(command "ОТРЕЗОК" p10 p13 "")

(command "ОТРЕЗОК" p11 p12 "")

)

)

;рисование обычного чертежа;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;отверстие

(command "_ARC" t1 t7 t2 "")

;деталь

(command "ОТРЕЗОК" t2 t4 "")

(command "ОТРЕЗОК" t4 t3 "")

(command "ОТРЕЗОК" t3 t8 "")

(command "ОТРЕЗОК" t8 t0 "")

(command "ОТРЕЗОК" t0 t5 "")

(command "ОТРЕЗОК" t1 t5 "")

(command "ОТРЕЗОК" t4 t5 "")

;высота

(if (> L6 0)

(progn

(command "_ARC" t10 t12 t9 "")

(command "_ARC" t9 t11 t10 "")

)

)

;внутренний диаметр

(if (> L9 0)

(progn

(command "_ARC" t14 t13 t16 "")

(command "_ARC" t16 t15 t14 "")

)

)

; ШТРИХОВКА

(command "_layer" "У" "Штриховка" "") (command ) (command )

(command "-штрих" "С" "ANSI31" "1" "0" p16 "")

(command "-штрих" p16 "")

; ШТРИХОВКА

(command "_layer" "У" "Штриховка" "") (command ) (command )

(command "-штрих" "С" "ANSI31" "1" "0" p17 "")

(command "-штрих" p17 "")

; ШТРИХОВКА

(if (= L6 0)

(progn

(command "_layer" "У" "Штриховка" "") (command ) (command )

(command "-штрих" "С" "ANSI31" "1" "0" p18 "")

(command "-штрих" p18 "")

)

)

;осевые

 

(command "_layer" "У" "Оси" "") (command ) (command)

(command "_line" p14 p15 "")

(command "_line" t13 t8 "")

(command "_line" t9 t10 "")

;обозначение размеров;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;(разрез)

(command "_layer" "У" "Размеры" "") (command ) (command )

(setq _L3 10)

; высота платформы

(if (> L4 0)

(progn

(command "РЗМЛИНЕЙНЫЙ" p0 p1 "v" (list (- (car p0) 10) (+ (cadr p0) (/ L4 2)) ) )

)

)

; толщина стенки

; если есть толщина стенки и она не равна длине детали

(if (and (> L7 0) (/= L7 L2))

(progn

(command "РЗМЛИНЕЙНЫЙ" p7 p8 "h" (list (+ (car p7) (/ L7 2)) (+ (cadr p7) 10) ) )

)

)

; диаметр отверстия

; если есть отверстие

(if (> L9 0)

(progn

(command "РЗМЛИНЕЙНЫЙ" p11 p10 "v" "_mtext" "%%c<>" (list (+ (car p10) 10) (cadr p15) ))

)

)

; длина

(command "РЗМЛИНЕЙНЫЙ" p0 p9 "h" (list (+ (car p0) (/ L2 2)) (- (cadr p0) 10) ) )

; длина цилиндра и выступа

; если есть длина цилиндра и она не равна длине детали

(if (and (> L6 0) (/= L6 L2))

(progn

(command "РЗМЛИНЕЙНЫЙ" p5 p6 "h" (list (+ (car p5) (/ L6 2)) (+ (cadr p7) 10) ) )

)

)

;обозначение размеров;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;(обычный чертеж)

; высота

(if (> L1 0)

(progn

(command "РЗМЛИНЕЙНЫЙ" t3 t6 "v" (list (+ (car t3) 10) (+ (cadr t3) (/ L1 2)) ) )

)

)

; ширина детали

(command "РЗМЛИНЕЙНЫЙ" t0 t3 "h" (list (+ (car t0) (/ L3 2)) (- (cadr t0) _L3) ) )

(command "РЗМЛИНЕЙНЫЙ" t0 t3 "h" (list (+ (car t0) (/ L3 2)) (- (cadr t0) _L3) ) )

; диаметр цилиндра

; если есть диаметр цилиндра и он не равен ширине детали

(if (and (> L8 0) (/= L8 L3) (> L6 0))

(progn

(command "РЗМЛИНЕЙНЫЙ" t9 t10 "h" "_mtext" "%%c<>" (list (car p7) (+ (cadr p14) 30) ))

)

)

)



<== предыдущая лекция | следующая лекция ==>
Решение поставленной задачи | Windows Metafile і Enhanced Windows Metafile


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.025 сек.