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


(defun c:SPEC ( / make-line make-line-thick make-text-l make-text-c y)
;; Отключаем привязки
(setvar "OSMODE" 0)
;; === МАГИЯ ЗДЕСЬ ===
;; Автоматически включаем отображение толщины линий на экране!
(setvar "LWDISPLAY" 1)
;; === СОЗДАНИЕ ТЕКСТОВОГО СТИЛЯ ISOCPEUR ===
(if (not (tblsearch "STYLE" "GOST_ISOCPEUR"))
(entmakex '((0 . "STYLE")
(100 . "AcDbSymbolTableRecord")
(100 . "AcDbTextStyleTableRecord")
(2 . "GOST_ISOCPEUR")
(70 . 0)
(40 . 0.0)
(41 . 1.0)
(50 . 0.0)
(71 . 0)
(3 . "isocpeur.ttf")
(4 . "")))
)
;; === ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ ===
;; Функция создания ТОНКОЙ линии (для внутренней сетки)
(defun make-line (x1 y1 x2 y2)
(entmakex (list '(0 . "LINE") (list 10 x1 y1 0) (list 11 x2 y2 0)))
)
;; Функция создания ТОЛСТОЙ линии (0.50 мм) для главных рамок по ГОСТ
(defun make-line-thick (x1 y1 x2 y2)
(entmakex (list '(0 . "LINE") (list 10 x1 y1 0) (list 11 x2 y2 0) '(370 . 50)))
)
;; Функции создания текста
(defun make-text-l (x y txt hgt)
(entmakex (list '(0 . "TEXT") (list 10 x y 0) (cons 40 hgt) (cons 1 txt) '(7 . "GOST_ISOCPEUR")))
)
(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) '(7 . "GOST_ISOCPEUR")))
)
;; === 1. РИСОВАНИЕ ТОЛСТЫХ РАМОК ===
(make-line-thick 0 0 185 0)       ;; Самая нижняя
(make-line-thick 0 287 185 287)   ;; Самая верхняя
(make-line-thick 0 0 0 287)       ;; Левая внешняя граница
(make-line-thick 185 0 185 287)   ;; Правая внешняя граница
(make-line-thick 0 272 185 272)   ;; Отделяем шапку от самой таблицы
(make-line-thick 0 40 185 40)     ;; Отделяем штамп от таблицы
;; === 2. РИСОВАНИЕ ТОНКОЙ СЕТКИ ТАБЛИЦЫ ===
;; Горизонтальные тонкие линии (начинаем с 48, так как 40 - жирная)
(setq y 48)
(while (<= y 264)
(make-line 0 y 185 y)
(setq y (+ y 8))
)
;; Вертикальные линии колонок
(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 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)
;; === 3. ЗАПОЛНЕНИЕ ТЕКСТА ===
(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)
;; === ЗАПОЛНЕНИЕ ДАННЫХ (с отступом на 1 строку) ===
;; Документация
(make-text-c 121.5 258 "Документация" 3.5 0)
(make-text-c 3 242 "А2" 3.5 0)
(make-text-l 22 241.5 "ТПЖА.491112.299 СБ" 3.5)
(make-text-l 92 241.5 "Сборочный чертеж" 3.5)
(make-text-c 3 234 "А4" 3.5 0)
(make-text-l 22 233.5 "ТПЖА.491112.299 Е1" 3.5)
(make-text-l 92 233.5 "Схема деления изделия" 3.5)
(make-text-l 92 225.5 "на составные части" 3.5)
;; Сборочные единицы
(make-text-c 121.5 210 "Сборочные единицы" 3.5 0)
(make-text-c 3 194 "А4" 3.5 0)
(make-text-c 16 194 "1" 3.5 0)
(make-text-l 22 193.5 "ТПЖА.303666.501" 3.5)
(make-text-l 92 193.5 "Шпиндель в сборе" 3.5)
(make-text-c 158 194 "1" 3.5 0)
;; Детали
(make-text-c 121.5 178 "Детали" 3.5 0)
(make-text-c 3 162 "А3" 3.5 0) (make-text-c 16 162 "2" 3.5 0) (make-text-l 22 161.5 "ТПЖА.731616.502" 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 "3" 3.5 0) (make-text-l 22 153.5 "ТПЖА.752175.503" 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 "4" 3.5 0) (make-text-l 22 145.5 "ТПЖА.753137.504" 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 "5" 3.5 0) (make-text-l 22 137.5 "ТПЖА.753770.505" 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 "6" 3.5 0) (make-text-l 22 129.5 "ТПЖА.754160.506" 3.5) (make-text-l 92 129.5 "Прокладка" 3.5) (make-text-c 158 130 "1" 3.5 0)
(make-text-c 3 122 "А4" 3.5 0) (make-text-c 16 122 "7" 3.5 0) (make-text-l 22 121.5 "ТПЖА.758420.507" 3.5) (make-text-l 92 121.5 "Гайка накидная" 3.5) (make-text-c 158 122 "1" 3.5 0)
;; Стандартные изделия
(make-text-c 121.5 106 "Стандартные изделия" 3.5 0)
(make-text-c 16 90 "8" 3.5 0) (make-text-l 92 89.5 "Винт М6х16 ГОСТ 17473-80" 3.5) (make-text-c 158 90 "1" 3.5 0)
(make-text-c 16 82 "9" 3.5 0) (make-text-l 92 81.5 "Шайба 2.6 ГОСТ 11371-78" 3.5) (make-text-c 158 82 "1" 3.5 0)
;; Материалы
(make-text-c 121.5 66 "Материалы" 3.5 0)
(make-text-c 16 50 "10" 3.5 0) (make-text-l 92 49.5 "Шнур пеньковый" 3.5) (make-text-c 158 50 "0,012" 3.5 0) (make-text-l 165 49.5 "кг" 3.5)
;; Восстанавливаем привязки
(setvar "OSMODE" 4133)
(princ "\nИдеальная таблица с нужной толщиной линий успешно создана!")
(princ)
)