(defun c:MTextSize ( / ent data width height coltype)
(setq ent (car (entsel "\nВыберите MText: ")))
(if ent
(progn
(setq data (entget ent))
;; --- Проверяем и отключаем динамические столбцы ---
;; DXF 75 - тип столбцов:
;; 0 = без столбцов (один столбец)
;; 1 = динамические столбцы
;; 2 = статические столбцы
(if (assoc 75 data)
(progn
(setq coltype (cdr (assoc 75 data)))
(princ (strcat "\n?? Текущий режим столбцов: " (itoa coltype)))
(if (/= coltype 0)
(progn
(setq data (subst (cons 75 0) (assoc 75 data) data))
(princ "\n?? Переключено в режим 'Один столбец'")
)
)
)
(progn
;; Если DXF 75 нет, добавляем его (значение 0 = один столбец)
(setq data (append data (list (cons 75 0))))
(princ "\n?? Добавлен режим 'Один столбец'")
)
)
;; --- Теперь устанавливаем размеры ---
(setq width (cdr (assoc 41 data)))
(setq height (cdr (assoc 46 data)))
(princ (strcat "\n?? Текущая ширина: " (rtos width 2 3)))
(princ (strcat "\n?? Текущая высота: " (rtos height 2 3)))
;; Устанавливаем 500 x 500
(setq data (subst (cons 41 500.0) (assoc 41 data) data))
(setq data (subst (cons 46 500.0) (assoc 46 data) data))
;; --- Применяем изменения ---
(entmod data)
(entupd ent)
(princ "\n?? Готово! MText: режим 'Один столбец', размер 500 x 500")
)
(princ "\n? Объект не выбран или это не MText.")
)
(princ)
)