Загрузка данных
(defun c:ZADANIE12 ( / old_osnap old_dyn dx dy p i y_curr x_top t_val y_val offset)
;; Отключаем привязки и дин. ввод для 100% защиты от искажений
(setq old_osnap (getvar "OSMODE"))
(setq old_dyn (getvar "DYNMODE"))
(setvar "OSMODE" 0)
(setvar "DYNMODE" 0)
;; Вспомогательная функция для координат
(defun p (x y) (list (+ dx x) (+ dy y)))
;; =========================================================
;; ЗАДАНИЕ 1: КРОНШТЕЙН (Справа)
;; =========================================================
(setq dx 0 dy 0)
;; 1. Внешний и внутренний контур (Линии и математически точные дуги)
(command "_.LINE" (p 0 0) (p 0 35) (p 3 35) (p 3 60) "")
(command "_.ARC" "_C" (p 3 63) (p 0 63) (p 3 60)) ; Скругление выреза R3
(command "_.LINE" (p 0 63) (p 0 105) (p 145 105) "")
(command "_.ARC" "_C" (p 133 105) (p 133 93) (p 145 105)) ; Правое скругление базы R12
(command "_.LINE" (p 133 93) (p 22 93) "")
(command "_.ARC" "_C" (p 22 83) (p 22 93) (p 12 83)) ; Внутреннее скругление R10
(command "_.LINE" (p 12 83) (p 12 12) "")
(command "_.ARC" "_C" (p 0 12) (p 0 0) (p 12 12)) ; Нижнее скругление стойки R12
;; 2. Цилиндрическая бобышка (Левая видимая часть)
(command "_.LINE" (p 98 105) (p 98 145) (p 125 145) (p 125 105) "")
;; Нависающий край бобышки справа от базы
(command "_.LINE" (p 145 105) (p 152 105) "")
;; 3. Отверстие внутри бобышки (Левая половина - скрытый контур, синий цвет)
(command "_.COLOR" "5")
(command "_.LINE" (p 108 145) (p 108 123) (p 112.5 123) (p 112.5 113) (p 125 106) "")
(command "_.COLOR" "_BYLAYER")
;; 4. Отверстие внутри бобышки (Правая половина - Разрез со штриховкой)
(command "_.PLINE" (p 142 145) (p 142 123) (p 137.5 123) (p 137.5 113) (p 125 106) (p 125 105) (p 152 105) (p 152 145) "_C")
(command "_.HATCH" "ANSI31" 1.5 0 "_L" "") ; Заливка металлом
(command "_.LINE" (p 125 145) (p 142 145) "") ; Видимые задние стенки отверстия
(command "_.LINE" (p 125 123) (p 142 123) "")
(command "_.LINE" (p 125 113) (p 137.5 113) "")
(command "_.LINE" (p 125 145) (p 125 106) "") ; Линия реза в центре
;; 5. Линии построения параболы (Серые, как карандаш)
(command "_.COLOR" "8")
(command "_.LINE" (p 12 12) (p 125 12) (p 125 93) "")
(setq i 1)
(while (<= i 4)
(setq y_curr (+ 12 (* i (/ 81.0 5.0))))
(setq x_top (+ 12 (* i (/ 113.0 5.0))))
(command "_.LINE" (p 12 y_curr) (p 125 y_curr) "")
(command "_.LINE" (p 12 12) (p x_top 93) "")
(setq i (1+ i))
)
(command "_.LINE" (p 125 90) (p 125 155) "") ; Центральная ось бобышки
;; 6. Ребро жесткости (Сама Парабола - генерируется точками)
(command "_.COLOR" "1") ; Красный для выделения
(command "_.PLINE")
(setq t_val 0.0)
(while (<= t_val 1.0)
(command (p (+ 12 (* 113.0 t_val t_val)) (+ 12 (* 81.0 t_val))))
(setq t_val (+ t_val 0.02))
)
(command (p 125 93)) (command "")
;; Выноска "Парабола"
(command "_.COLOR" "_BYLAYER")
(command "_.LINE" (p 80 52) (p 110 30) (p 130 30) "")
;; =========================================================
;; ЗАДАНИЕ 2: ЛЕКАЛЬНАЯ КРИВАЯ (Слева)
;; =========================================================
(setq dx -160 dy 12) ; Сдвигаем влево
;; 1. Оси и рамка (Серые)
(command "_.COLOR" "8")
(command "_.LINE" (p 0 -110) (p 0 110) "")
(command "_.LINE" (p -10 0) (p 110 0) "")
(command "_.LINE" (p 0 100) (p 100 100) (p 100 -100) (p 0 -100) "")
;; 2. Лучи построения метода касательных
(setq i 1)
(while (<= i 4)
(setq offset (* i 20.0))
(command "_.LINE" (p 0 offset) (p 100 offset) "")
(command "_.LINE" (p 0 0) (p offset 100) "")
(command "_.LINE" (p 0 (- offset)) (p 100 (- offset)) "")
(command "_.LINE" (p 0 0) (p offset -100) "")
(setq i (1+ i))
)
;; 3. Сама лекальная кривая (Парабола)
(command "_.COLOR" "1") ; Красная
(command "_.PLINE")
(setq y_val -100.0)
(while (<= y_val 100.0)
(command (p (/ (* y_val y_val) 100.0) y_val))
(setq y_val (+ y_val 2.0))
)
(command (p 100 100)) (command "")
;; Восстановление настроек
(command "_.COLOR" "_BYLAYER")
(setvar "OSMODE" old_osnap)
(setvar "DYNMODE" old_dyn)
(command "_.ZOOM" "_E")
(princ "\nИдеальная геометрия построена!")
(princ)
)
(c:ZADANIE12)