Тема: Background Mask для Mtext
величина Border Offset Factor по умолчанию равна 1.5. Как сделать, чтобы по умолчанию она была, допустим, 1.1?
Есть ли переменная, которая отвечает за эту величину?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → LISP → Background Mask для Mtext
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
величина Border Offset Factor по умолчанию равна 1.5. Как сделать, чтобы по умолчанию она была, допустим, 1.1?
Есть ли переменная, которая отвечает за эту величину?
Есть ли переменная - хрен его знает
Можно так
(defun c:bmon (/ ss mts vl_mts mask_on mt mt_dxf leader ) (setq ss (ssget '((0 . "MTEXT"))));выбор мтекстов в чертеже (setq mts (ssnamex ss)) (setq ss nil) (setq mts (mapcar 'cadr mts));выкидывание номеров набора из списка (setq mts (vl-remove-if-not '(lambda (x) (eq (type x) 'ENAME)) mts)) ;выкидывание способов набора из списка (setq vl_mts (mapcar 'vlax-ename->vla-object mts)) (mapcar '(lambda (x) (vla-put-BackgroundFill x :vlax-true)) vl_mts) (foreach mt mts (setq mt_dxf (entget mt)) (setq mt_dxf (subst (cons 63 256) (assoc 63 mt_dxf) mt_dxf)) (setq mt_dxf (subst [b](cons 45 1.25)[/b] (assoc 45 mt_dxf) mt_dxf)) (setq mt_dxf (subst (cons 90 3) (assoc 90 mt_dxf) mt_dxf)) (entmod mt_dxf) (if (assoc 330 mt_dxf) (progn (setq leader (cdr (assoc 330 mt_dxf))) (vl-cmdf "_draworder" leader "" "_a" mt "") ) ) ) ) (defun c:bmoff(/ ss mts vl_mts mask_on mt mt_dxf leader ) (setq ss (ssget '((0 . "MTEXT"))));выбор мтекстов в чертеже (setq mts (ssnamex ss)) (setq ss nil) (setq mts (mapcar 'cadr mts));выкидывание номеров набора из списка (setq mts (vl-remove-if-not '(lambda (x) (eq (type x) 'ENAME)) mts)) ;выкидывание способов набора из списка (setq vl_mts (mapcar 'vlax-ename->vla-object mts)) (mapcar '(lambda (x) (vla-put-BackgroundFill x :vlax-false)) vl_mts)
BMON включает маску текста, BMOFF - выключает.
величина Border Offset Factor здесь равна 1.25. Можно изменить по вкусу в группе 45 (выделено жирным)
Если Mtext связан с выноской, она станет на передний план (IMHO, удобно)
Пардон, куда-то пропала последняя скобка
(defun c:bmoff(/ ss mts vl_mts mask_on mt mt_dxf leader ) (setq ss (ssget '((0 . "MTEXT"))));выбор мтекстов в чертеже (setq mts (ssnamex ss)) (setq ss nil) (setq mts (mapcar 'cadr mts));выкидывание номеров набора из списка (setq mts (vl-remove-if-not '(lambda (x) (eq (type x) 'ENAME)) mts)) ;выкидывание способов набора из списка (setq vl_mts (mapcar 'vlax-ename->vla-object mts)) (mapcar '(lambda (x) (vla-put-BackgroundFill x :vlax-false)) vl_mts) )
подскажите, как запускать функции bmon, bmoff? Какую команду писать в кнопке? ^C^C_bmon? Или как-то иначе? Не получается запустить.
а что при этом происоходит? что пишет АвтоГад?
заработало. Что было - фиг знает. Похоже, просто помогла перезагрузка компьютера. Огромное спасибо за помощь!!!
может быть подскажете ответ на такой вопрос: как сделать, чтобы при открытии текста в редакторе mtext сразу весь текст был выбран? я его спрашивал в отдельной теме, но ответов, увы, не было
В стандартном редакторе - не знаю. Наверное, нельзя.
А вот в редакторе многоуважаемого VetalBY - МОЖНО!
См. тут: https://www.caduser.ru/forum/topic43376.html
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → LISP → Background Mask для Mtext
Форум работает на PunBB, при поддержке Informer Technologies, Inc