1
AutoLisp / VisualLISP и DCL / Re: Как установить размеры рамки вокруг Мтекст?
« Последний ответ от Electric 11-08-2026, 06:45:46 »Добрый день. Ваш код работает с МТекстом у которого свойство столбцы установлено в нет, вместо динамический.
Да, Вы правы. Это наконец решило проблему:
Код - Auto/Visual Lisp [Выбрать]
- (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)
- )
Последние сообщения
Ни одно из предлагаемых им решений не работает правильно.