Загрузка данных


(defun c:SPEC ( / make-line make-text-l make-text-c y)
  
  ;; Отключаем привязки, чтобы линии строились ровно
  (setvar "OSMODE" 0)

  ;; === ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ ===
  ;; Функция создания линии
  (defun make-line (x1 y1 x2 y2)
    (entmakex (list '(0 . "LINE") (list 10 x1 y1 0) (list 11 x2 y2 0)))
  )
  
  ;; Функция создания текста (выравнивание по левому краю)
  (defun make-text-l (x y txt hgt)
    (entmakex (list '(0 . "TEXT") (list 10 x y 0) (cons 40 hgt) (cons 1 txt)))
  )

  ;; Функция создания текста (выравнивание по центру)
  (defun make-text-c (x y txt hgt rot)
    (entmakex (list '(0 . "TEXT") (list 10 x y 0) (cons 40 hgt) (cons 1 txt) 
                    (cons 50 (* pi (/ rot 180.0))) '(72 . 1) (list 11 x y 0)))
  )

  ;; === 1. РИСОВАНИЕ СЕТКИ ТАБЛИЦЫ ===
  
  ;; Горизонтальные линии строк (высота 8, от Y=40 до Y=272)
  (setq y 40)
  (while (<= y 272)
    (make-line 0 y 185 y)
    (setq y (+ y 8))
  )
  ;; Верхняя линия шапки
  (make-line 0 287 185 287) 

  ;; Вертикальные линии колонок
  (make-line 0 40 0 287)       ;; Левая граница
  (make-line 6 40 6 287)       ;; Формат
  (make-line 12 40 12 287)     ;; Зона
  (make-line 20 40 20 287)     ;; Поз.
  (make-line 90 40 90 287)     ;; Обозначение
  (make-line 153 40 153 287)   ;; Наименование
  (make-line 163 40 163 287)   ;; Кол.
  (make-line 185 0 185 287)    ;; Правая граница (до самого низа)
  (make-line 0 0 0 40)         ;; Левая граница нижнего штампа

  ;; Горизонтальные линии нижнего штампа
  (make-line 0 0 185 0)
  (make-line 0 5 65 5)
  (make-line 0 10 65 10)
  (make-line 0 15 185 15)
  (make-line 0 20 65 20)
  (make-line 135 20 185 20)
  (make-line 0 25 65 25)
  (make-line 135 25 185 25)
  (make-line 0 30 65 30)
  (make-line 0 35 65 35)

  ;; Вертикальные линии нижнего штампа
  (make-line 17 0 17 40)
  (make-line 40 0 40 40)
  (make-line 55 0 55 40)
  (make-line 65 0 65 40)
  (make-line 135 0 135 40)
  (make-line 150 15 150 25)
  (make-line 165 15 165 25)

  ;; === 2. ЗАПОЛНЕНИЕ ТЕКСТА (ШАПКА И ШТАМП) ===
  
  (make-text-c 3 279.5 "Формат" 2.5 90)
  (make-text-c 9 279.5 "Зона" 2.5 90)
  (make-text-c 16 279.5 "Поз." 3 0)
  (make-text-c 55 278 "Обозначение" 3.5 0)
  (make-text-c 121.5 278 "Наименование" 3.5 0)
  (make-text-c 158 279.5 "Кол." 2.5 90)
  (make-text-c 174 281 "Приме-" 3 0)
  (make-text-c 174 275 "чание" 3 0)

  ;; Текст в штампе
  (make-text-c 100 30 "ТПЖА. ХХХХХХ. ХХХ. ХХ" 5 0)
  (make-text-c 100 10 "Вентиль" 7 0)
  (make-text-c 142.5 21.5 "Лит." 2.5 0)
  (make-text-c 157.5 21.5 "Лист" 2.5 0)
  (make-text-c 175 21.5 "Листов" 2.5 0)
  (make-text-c 142.5 16.5 "У" 3.5 0)
  (make-text-c 175 16.5 "1" 3.5 0)

  ;; === 3. ЗАПОЛНЕНИЕ ДАННЫХ ИЗ ФОТО 2 ===

  ;; Документация
  (make-text-c 121.5 266 "Документация" 3.5 0)
  
  (make-text-c 3 250 "А2" 3.5 0)
  (make-text-l 22 249.5 "ТПЖА.491112.299 СБ" 3.5)
  (make-text-l 92 249.5 "Сборочный чертеж" 3.5)

  (make-text-c 3 242 "А4" 3.5 0)
  (make-text-l 22 241.5 "ТПЖА.491112.299 Е1" 3.5)
  (make-text-l 92 241.5 "Схема деления изделия" 3.5)
  (make-text-l 92 233.5 "на составные части" 3.5)

  ;; Сборочные единицы
  (make-text-c 121.5 218 "Сборочные единицы" 3.5 0)
  
  (make-text-c 3 202 "А4" 3.5 0)
  (make-text-c 16 202 "1" 3.5 0)
  (make-text-l 22 201.5 "ТПЖА.303666.501" 3.5)
  (make-text-l 92 201.5 "Шпиндель в сборе" 3.5)
  (make-text-c 158 202 "1" 3.5 0)

  ;; Детали
  (make-text-c 121.5 186 "Детали" 3.5 0)
  
  (make-text-c 3 170 "А3" 3.5 0) (make-text-c 16 170 "2" 3.5 0) (make-text-l 22 169.5 "ТПЖА.731616.502" 3.5) (make-text-l 92 169.5 "Корпус" 3.5) (make-text-c 158 170 "1" 3.5 0)
  (make-text-c 3 162 "А4" 3.5 0) (make-text-c 16 162 "3" 3.5 0) (make-text-l 22 161.5 "ТПЖА.752175.503" 3.5) (make-text-l 92 161.5 "Втулка нажимная" 3.5) (make-text-c 158 162 "1" 3.5 0)
  (make-text-c 3 154 "А4" 3.5 0) (make-text-c 16 154 "4" 3.5 0) (make-text-l 22 153.5 "ТПЖА.753137.504" 3.5) (make-text-l 92 153.5 "Штуцер" 3.5) (make-text-c 158 154 "1" 3.5 0)
  (make-text-c 3 146 "А4" 3.5 0) (make-text-c 16 146 "5" 3.5 0) (make-text-l 22 145.5 "ТПЖА.753770.505" 3.5) (make-text-l 92 145.5 "Маховичок" 3.5) (make-text-c 158 146 "1" 3.5 0)
  (make-text-c 3 138 "А4" 3.5 0) (make-text-c 16 138 "6" 3.5 0) (make-text-l 22 137.5 "ТПЖА.754160.506" 3.5) (make-text-l 92 137.5 "Прокладка" 3.5) (make-text-c 158 138 "1" 3.5 0)
  (make-text-c 3 130 "А4" 3.5 0) (make-text-c 16 130 "7" 3.5 0) (make-text-l 22 129.5 "ТПЖА.758420.507" 3.5) (make-text-l 92 129.5 "Гайка накидная" 3.5) (make-text-c 158 130 "1" 3.5 0)

  ;; Стандартные изделия
  (make-text-c 121.5 114 "Стандартные изделия" 3.5 0)

  (make-text-c 16 98 "8" 3.5 0) (make-text-l 92 97.5 "Винт М6х16 ГОСТ 17473-80" 3.5) (make-text-c 158 98 "1" 3.5 0)
  (make-text-c 16 90 "9" 3.5 0) (make-text-l 92 89.5 "Шайба 2.6 ГОСТ 11371-78" 3.5) (make-text-c 158 90 "1" 3.5 0)

  ;; Материалы
  (make-text-c 121.5 74 "Материалы" 3.5 0)

  (make-text-c 16 58 "10" 3.5 0) (make-text-l 92 57.5 "Шнур пеньковый" 3.5) (make-text-c 158 58 "0,012" 3.5 0) (make-text-l 165 57.5 "кг" 3.5)

  ;; Восстанавливаем привязки (по умолчанию обычно 4133)
  (setvar "OSMODE" 4133)
  (princ "\nСпецификация успешно начерчена! Для центровки дважды кликните колесиком мыши.")
  (princ)
)