(defun c:DrawSpecTable ( / mkline y x)
(setvar "CMDECHO" 0)
;; Вспомогательная функция для быстрого черчения линий без привязок
(defun mkline (p1 p2)
(entmakex (list (cons 0 "LINE") (cons 10 p1) (cons 11 p2)))
)
;; 1. Внешняя рамка листа (внутренняя часть 185 x 287 мм)
(mkline '(0 0) '(185 0))
(mkline '(185 0) '(185 287))
(mkline '(185 287) '(0 287))
(mkline '(0 287) '(0 0))
;; 2. Левое поле для подшивки (20 мм)
(mkline '(-20 0) '(0 0))
(mkline '(-20 287) '(0 287))
(mkline '(-20 0) '(-20 287))
;; 3. Вертикальные линии основных колонок (Формат, Зона, Поз, Обозначение и т.д.)
;; Координаты X: 6, 12(6+6), 20(12+8), 90(20+70), 153(90+63), 163(153+10)
(foreach x '(6 12 20 90 153 163)
(mkline (list x 15) (list x 287))
)
;; 4. Горизонтальная линия шапки сверху (высота 15 мм)
(mkline '(0 272) '(185 272))
;; 5. Горизонтальные линии строк спецификации (шаг 8 мм)
(setq y 264)
(while (> y 20)
(mkline (list 0 y) (list 185 y))
(setq y (- y 8))
)
;; 6. Верхняя граница нижнего штампа (высота 15 мм)
(mkline '(0 15) '(185 15))
;; 7. Вертикальные линии в нижнем штампе
;; Размеры: 7, 10, 23, 15, 10, 70, 50
(foreach x '(7 17 40 55 65 135)
(mkline (list x 0) (list x 15))
)
;; 8. Горизонтальные линии в нижнем штампе (шаг 5 мм)
(mkline '(0 5) '(65 5))
(mkline '(0 10) '(65 10))
(mkline '(135 5) '(185 5))
(mkline '(135 10) '(185 10))
;; Масштабирование экрана для показа результата
(command "_.ZOOM" "_E")
(princ "\nТаблица успешно начерчена! Левый нижний угол внутренней рамки находится в координатах (0,0).")
(princ)
)
;; Автоматический запуск функции сразу после вставки кода
(c:DrawSpecTable)