Загрузка данных
(defun c:PRAC3_VAR12 ( / old_osnap dx dy i cur_x cur_y)
;; Отключаем привязки, чтобы линии не цеплялись друг за друга
(setq old_osnap (getvar "OSMODE"))
(setvar "OSMODE" 0)
;; =========================================================
;; ЗАДАНИЕ 2: Построение лекальной кривой (Парабола)
;; =========================================================
(setq dx 0 dy 0) ; Координаты для второго задания
;; Осевые линии
(command "_.LINE" (list dx (- dy 110)) (list dx (+ dy 110)) "")
(command "_.LINE" (list (- dx 10) dy) (list (+ dx 80) dy) "")
;; Прямоугольники построения (увеличены в 2 раза для наглядности, K=50x100)
(command "_.LINE" (list dx dy) (list dx (+ dy 100)) (list (+ dx 50) (+ dy 100)) (list (+ dx 50) dy) "")
(command "_.LINE" (list dx dy) (list dx (- dy 100)) (list (+ dx 50) (- dy 100)) (list (+ dx 50) dy) "")
;; Генерация лучей и касательных (Верхняя и нижняя части)
(setq i 1)
(while (<= i 5)
(setq cur_x (* i 10.0))
(setq cur_y (* i 20.0))
;; Верхняя половина
(command "_.LINE" (list dx dy) (list (+ dx cur_x) (+ dy 100)) "")
(command "_.LINE" (list dx (+ dy cur_y)) (list (+ dx 50) (+ dy cur_y)) "")
;; Нижняя половина
(command "_.LINE" (list dx dy) (list (+ dx cur_x) (- dy 100)) "")
(command "_.LINE" (list dx (- dy cur_y)) (list (+ dx 50) (- dy cur_y)) "")
(setq i (1+ i))
)
;; Отрисовка самой лекальной кривой (Сплайн)
(command "_.COLOR" "1") ; Красный цвет
(command "_.SPLINE"
(list dx dy) (list (+ dx 2) (+ dy 20)) (list (+ dx 8) (+ dy 40))
(list (+ dx 18) (+ dy 60)) (list (+ dx 32) (+ dy 80)) (list (+ dx 50) (+ dy 100))
"" "" ""
)
(command "_.SPLINE"
(list dx dy) (list (+ dx 2) (- dy 20)) (list (+ dx 8) (- dy 40))
(list (+ dx 18) (- dy 60)) (list (+ dx 32) (- dy 80)) (list (+ dx 50) (- dy 100))
"" "" ""
)
(command "_.COLOR" "_BYLAYER")
;; =========================================================
;; ЗАДАНИЕ 1: Кронштейн
;; =========================================================
(setq dx 120 dy -50) ; Смещаем чертеж кронштейна правее
;; Контур левой стойки и горизонтальной базы
(command "_.PLINE"
(list dx dy) ; Левый нижний угол (0,0)
(list dx (+ dy 85)) ; Вверх
(list (+ dx 12) (+ dy 85)) ; Вправо (толщина 12)
(list (+ dx 12) (+ dy 55)) ; Вниз до выреза
(list (+ dx 9) (+ dy 55)) ; Глубина выреза 3
(list (+ dx 9) (+ dy 35)) ; Длина выреза 20
(list (+ dx 12) (+ dy 35)) ; Выход из выреза
(list (+ dx 12) (+ dy 12)) ; Вниз до внутренней площадки
(list (+ dx 145) (+ dy 12)) ; Вправо по площадке до начала скругления
"_A" "_R" "12" (list (+ dx 157) dy) ; Скругление R12
"_L" (list dx dy) ; Замыкание контура
"_C"
)
;; Внешний контур цилиндрической бобышки (Ø54)
(command "_.LINE" (list (+ dx 98) (+ dy 12)) (list (+ dx 98) (+ dy 44)) "")
(command "_.LINE" (list (+ dx 98) (+ dy 44)) (list (+ dx 152) (+ dy 44)) "")
(command "_.LINE" (list (+ dx 152) (+ dy 44)) (list (+ dx 152) (+ dy 12)) "")
(command "_.LINE" (list (+ dx 125) (+ dy -5)) (list (+ dx 125) (+ dy 55)) "") ; Осевая линия
;; Ступенчатое отверстие (Правая половина - Разрез)
(command "_.LINE" (list (+ dx 125) (+ dy 44)) (list (+ dx 143) (+ dy 44)) "") ; Ø36
(command "_.LINE" (list (+ dx 143) (+ dy 44)) (list (+ dx 143) (+ dy 34)) "")
(command "_.LINE" (list (+ dx 143) (+ dy 34)) (list (+ dx 137) (+ dy 34)) "") ; Ø24
(command "_.LINE" (list (+ dx 137) (+ dy 34)) (list (+ dx 137) (+ dy 22)) "")
(command "_.LINE" (list (+ dx 137) (+ dy 22)) (list (+ dx 125) (+ dy 18)) "") ; Конус сверла
(command "_.LINE" (list (+ dx 125) (+ dy 18)) (list (+ dx 125) (+ dy 44)) "") ; Замыкание разреза
;; Ступенчатое отверстие (Левая половина - Невидимый контур)
(command "_.LINE" (list (+ dx 107) (+ dy 44)) (list (+ dx 107) (+ dy 34)) "")
(command "_.LINE" (list (+ dx 107) (+ dy 34)) (list (+ dx 113) (+ dy 34)) "")
(command "_.LINE" (list (+ dx 113) (+ dy 34)) (list (+ dx 113) (+ dy 22)) "")
(command "_.LINE" (list (+ dx 113) (+ dy 22)) (list (+ dx 125) (+ dy 18)) "")
;; Параболическое ребро жесткости (Высчитано математически по сплайну)
(command "_.SPLINE"
(list (+ dx 12) (+ dy 35))
(list (+ dx 40) (+ dy 25))
(list (+ dx 68.5) (+ dy 17.7))
(list (+ dx 96) (+ dy 13.5))
(list (+ dx 125) (+ dy 12))
"" "" ""
)
;; Возвращаем настройки
(setvar "OSMODE" old_osnap)
(command "_.ZOOM" "_E")
(princ "\nПрактическая работа №3 (Вариант 12) успешно построена! Вызови команду PRAC3_VAR12.")
(princ)
)
(c:PRAC3_VAR12)