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


(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)