Добрый день. Подскажите, пожалуйста, как можно массово поменять высоту текста и ширину текста атрибута блока. В чертеже существует большое количество разных блоков с атрибутами. Необходимо поменять характеристики атрибутов массово, только чтобы атрибуты не сдвигались со своих мест.
Спасибо большое. Но лисп не решает мою проблему. Мне нужно, чтобы менялась степень растяжения, помимо высоты текста.
Здравствуйте, если я правильно понял ваш вопрос, то вам нужно зайти в редактор блока ( через контекстное меню "редактор блоков"), выбрать нужный атрибут и в его общих свойствах поменять высоту и коффициент сжатия. Затем выйти из редактора блока и сохранить изменения ;)
Так пробовала, не получается. Внутри блока сохраняется вновь выставленный коэффициент сжатия, а при выходе из блока ничего не изменяется.
victori*a, файл с нужным блоком в студию ;) Так будет быстрее решить ваш вопрос. Ну или не быстрее, но явно проще ;) --- Сообщения объединены, 20 сен 2017, Оригинальное время сообщения: 20 сен 2017 --- sergtor, А лисп полезный, спасибо! :)
Чтобы состояние атрибута изменялось после редактирования, необходимо делать _ATTSYNC (АТРОБНОВИТЬ). Заменить значение атрибута на число? Или заменить атрибут на текст с содержимым из числа? Значения попробуйте заменять _FIND (НАЙТИ).
я имею ввиду, что есть к примеру блок с атрибутом, как изменить текст в атрибуте у нескольких блоков к примеру на 1,15
Опять не понятна Ваша задача. Изменить значение атрибутов, чтобы в итоге у всех блоков была одна и та же величина, или поднять(опустить) из на определенное значение.
Выбрать пикеты, вызвать _MOVE (ПЕРЕНЕСТИ), вбить @0,0,1.15. "@" означает приращение, т.е. на сколько. Сделайте в атрибуте поле, считывающее Z блока. Изменится Z - изменится и значение атрибута. После регенерации - _REGEN (РЕГЕН), _REGENALL (ВСЕРЕГЕН). Сами значения в таких атрибутах руками трогать не нужно - утратится связь с Z.
А может после этого этапа проще выполнить экспорт координат блоков в текстовый файл, а затем импортировать блоки с атрибутами. Для этого, я думаю, идеально подойдет Geo_import/export.
Можно просто заменить блоки на блоки с полем, считывающим Z. Например, с помощью BLOCKREPLACE из Express.
После этого этапа применить этот лисп: (ZBLATT) .Предварительно подредактировать свои значения имени блока и тэга. Код: (defun C:ZATTBL ( / blname tagname round objSet *error*) (vl-load-com) (defun *error*(msg)(princ msg) (vla-EndUndoMark (vla-get-activedocument (vlax-get-acad-object)))(princ)) (vla-StartUndoMark (vla-get-activedocument (vlax-get-acad-object))) (vla-StartUndoMark (vla-get-activedocument (vlax-get-acad-object))) (setq blname "PICKET" ;_Block name tagname "OTMETKA" ;_Tag Z value round 3 ;_ Round Z value to 3 digit