Как изменить размер текста во всех блоках с одинаковым имене
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как изменить размер текста во всех блоках с одинаковым имене

Как изменить размер текста во всех блоках с одинаковым имене

Ответ
Поиск в этой теме
Непрочитано 04.10.2006, 17:30 #1
Как изменить размер текста во всех блоках с одинаковым имене
red
 
Регистрация: 30.04.2004
Сообщений: 9

на чертеже много блоков (рисунок+надпись к нему при помощи атрибутов).... я хочу размер текста увеличить во всех этих блоках!
КААК?
В каждом блоке отдельно менять? нельзя во всех сразу?.....блок один и тот же, только значения разные...
Если при помощи редактирования блока, то он меняет только размер текста атрибута, а его значения нет! Есть способ?
Просмотров: 59907
 
Непрочитано 04.10.2006, 17:38
1 | #2
axe


 
Регистрация: 25.09.2006
Санкт-Петербург
Сообщений: 23


Насколько я понимаю, речь идет о команде BATTMAN.
С помощью выпадающего списка выбираем блок, который нужно отредоктировать, жмем edit и редактируем атрибут.
для acad2006 Modify->Object->Attribute->Block Attribute Manager
axe вне форума  
 
Автор темы   Непрочитано 04.10.2006, 17:40
#3
red


 
Регистрация: 30.04.2004
Сообщений: 9


Для 2004 как?
Так он только размер атрибутов меняет, а самого текста, значений присвоенных атрибуту, нет!!!
red вне форума  
 
Непрочитано 04.10.2006, 17:55
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431


А также attsync. Только тогда перетащенные атрибуты теряют изменения точек вставки, выравнивания и проч.
Сначала редактируешь любое вхождение блока, выставляя там в атрибутах нужные значения, потом команда attsync либо battman. Все.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 04.10.2006, 17:59
#5
axe


 
Регистрация: 25.09.2006
Санкт-Петербург
Сообщений: 23


Цитата:
я хочу размер текста увеличить во всех этих блоках!
Размер текста присвоеного атрибуту меняется на вкладке Text Option. Правда параметр "высота" может быть не доступен если в данном стиле текста присвоена конкретная величина - тогда создаем новый стиль с требуемой величиной, и присваиваем этот стиль тексту.

ЗЫ kpblc уже все подробно написал. =)
axe вне форума  
 
Автор темы   Непрочитано 04.10.2006, 18:05
#6
red


 
Регистрация: 30.04.2004
Сообщений: 9


Он доступен...но он не меняет размер текста на чертеже...Дайте почту...я пришлю файл...Там блоками автоматические выключатели, у текста размер шрифта 1,3...Попробуйте сделать сразу во всех блоках 2 например...не получается так!!!
red вне форума  
 
Непрочитано 04.10.2006, 18:06
#7
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431


Лучше файл сюда приложить.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 04.10.2006, 18:29
#8
red


 
Регистрация: 30.04.2004
Сообщений: 9


Вот, там блоки, автомат...
размер шрифта 1.3, как сразу во всех поменять его?
red вне форума  
 
Непрочитано 04.10.2006, 18:44
#9
axe


 
Регистрация: 25.09.2006
Санкт-Петербург
Сообщений: 23


В смысле, чтоб так было?
[ATTACH]1159973068.dwg[/ATTACH]
axe вне форума  
 
Непрочитано 04.10.2006, 18:51
#10
axe


 
Регистрация: 25.09.2006
Санкт-Петербург
Сообщений: 23


на скриншотах все видно. Высота у меня кстати была заблокирована, поэтому я таки создал новый стиль example с высотой 1.3
[ATTACH]1159973454.JPG[/ATTACH]
axe вне форума  
 
Непрочитано 04.10.2006, 20:45
#11
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


Уважаемый red тему надо бы в юмор запостить, прочитав и поняв нижеследующее вы это поймете и сами.
1) в чертеже может содержаться только один блок с одним именем, много может быть только вхождений этого блока, т.е. описаний точки и параметров вставки (чтобы компьютер знал где и как нужно сделать отображение того что хранится у него в памяти)
2) соответственно изменив блок обновляется и отображение вхождений
3) атрибут - хитрая штуковина вид которой может быть переопределен для каждого вхождения
4) выполнив команду attsync вы обновите все отображения вхождений блоков в тот вид в котором они представлены в самом описании блока, т.е. вы сборосите все переопределения касающиеся вида аттрибутов.
5) вы конечно можете для каждого вхождения переопределять вид атрибутов, а можете нажать F1, и прочитать все что написано выше, в справке к автокаду, (вопросов что такое F1 просьба не задавать).
6) на самом деле как вы понимаете нисколько не интересно пересказывать справку, просто надоело видеть очередную тему где задается подобный вопрос, гуру у вас выпросят файлик сами там все сделают, потом правда клещами не вытянешь что и как они сделали (они видимо приятные ощущения испытывают когда подправляют чужие файлики а потом ловят кайф от энергии изумленного афтара, который диву дается как это они сделали???)
Sleekka вне форума  
 
Непрочитано 05.10.2006, 05:36 Re: Как изменить размер текста во всех блоках с одинаковым и
#12
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Цитата:
Сообщение от red
на чертеже много блоков (рисунок+надпись к нему при помощи атрибутов).... я хочу размер текста увеличить во всех этих блоках!
КААК?
В каждом блоке отдельно менять? нельзя во всех сразу?.....блок один и тот же, только значения разные...
Если при помощи редактирования блока, то он меняет только размер текста атрибута, а его значения нет! Есть способ?
Так что-же надо поменять-высоты или значения? Которое из твоего вопроса можно понять как СОДЕРЖАНИЕ? Полагаю, имеется в виду геометрические характеристики атрибута-высота, наклон, стиль... Ты хочешь поменять навсегда, во всех будующих чертежах или только в данном? Если навсегда, то командой Battman в исходном файле, где этот блок хранится (надеюсь, в вашей библиотеке блоков). Там-же надо нажать кнопку Sync, чтобы все изменилось в уже существующей вставке этого блока. Ну и в конкретном чертеже. Как правильно заметил Sleekka в п. 4 синхронизация может привести к изменению геометрии атрибутов на существ. блоке, если вы их до этого персонально меняли. Например, грипсом подвинули. После синхронизации надо вручную восстановить, если подобные изменения произошли.
Если надо индивидуально поменять что-то в геометрии атрибутов на существ. вставках, автокад предлагает команды Eattedit и -Attedit. Можешь сам создать кнопки редактирования атрибутов за один клик, если зайдешь сюда http://dwg.ru/art/2 А если сюда http://dwg.ru/dnl/97 то получишь прогу, которая все что надо сделает с атрибутами хоть поштучно, хоть одним махом.
В заключение позволь покритиковать твой чертеж. Что, у вас фантазии не хватило создать несколько слоев и раскрасить чертеж? Почему блок имеет такое странное имя - BlockDefenition? Почему вертикальный текст не вошел в состав этого-же блока-также атрибутами И наконец, Почему все в слое 0? Пусть все новички, которые это читают, зарубят себе на носу: никогда не работайте в слое 0 - за исключением определения в нем блоков.
Vova вне форума  
 
Автор темы   Непрочитано 05.10.2006, 11:41
#13
red


 
Регистрация: 30.04.2004
Сообщений: 9


Ну вы ребята молодцы конечно!! Супер просто...взять и облить человека грязью!!!!

AXE спасибо, только мне не расстояние между текстом надо .......а высоту шрифта, чтобы покрупнее было!!
Ну я все понела, все получилось...просто не знала этой команды

В тему юмор....ну ну...Форум создан чтобы общались только спецы...и обсуждали только супер сложные вопросы...А как новичок..так давай над ним потешаться?...Дааа...это беда всех форумов где есть народ который типа круче всех все знает....По поводу зайти на советы профи и т.д...........почитать....А что если Мне надо через пол часа отдать все это заказчику..чтобы такие супер умники как вы могли в магазине при свете ходить...а не в потемках???
Раскрасить в разные цвета....я что...в детском саду?...мне схема важна, а не веселые картинки...Когда инспектор надзора (человек лет 60) видит хоть что-то в цвете.....он впадает в панику....
ТО что текст не вошел в состав блока, это уже дело проектировщиков, которые на опыте и практике понимают что им и как удобнее......
Несколько слоев......Ха...когда рисуется архитектура..планы огромных зданий..разводки и т.д......конечно...цвета, слои....Да...Но..когда это просто схема, в которой пытаются работать куча народа....вообще не связанные с автокадом..да иногда и с компом вообще...все упрощается до невозможности...с определенными целями!!
Простите что задала ужасно Глупый, смешной и бестолковый вопрос...на который мне к сожалению не смогли ответить в других местах....и желаю Вам всем как нибудь по жизни попасть на форум по электрике с каким нибудь простейшим вопросом, но ответ на который вам нужен будет срочно..., где я Вас так- же оболью грязью...
red вне форума  
 
Непрочитано 05.10.2006, 12:33
#14
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


Цитата:
Сообщение от Sleekka
5) вы конечно можете для каждого вхождения переопределять вид атрибутов, а можете нажать F1, и прочитать все что написано выше, в справке к автокаду, (вопросов что такое F1 просьба не задавать).
Давайте тогда все что касается AutoCAD поудаляем с этого форума и оставим всего одну ветку в которой будет один пост:
Цитата:
Читайте справку! (F1)
Так вообще много сайтов можно накрыть.
Krieger вне форума  
 
Непрочитано 05.10.2006, 12:44
#15
axe


 
Регистрация: 25.09.2006
Санкт-Петербург
Сообщений: 23


Red, мой Вам добрый совет: не стоит категорично обижаться на высказаное выше, на мой взгляд (ИМХО) никто не хотел Вас обидеть или как-то задеть. Глупых вопросов не бывает, бывают глупые ответы. Не обижайтесь, но в Вашем чертеже много чего можно улучшить, и то, о чем писали Sleekka и Vova может значительно облегчить Вам работу с однолинейками. В цвета их конечно раскрашивать необязательно (хотя -можно! - в определенных случаях), но суть не в этом, попытайтесь понять сам принцип.

ЗЫ Высота текста указывается в стиле текста, можно указать любую, я ставил 1.3. Кстати, имхо оптимальнее редактировать чертеж в соотв-вии пункту4 описаному by Sleekka.
axe вне форума  
 
Непрочитано 05.10.2006, 15:19
#16
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Цитата:
Сообщение от red
Раскрасить в разные цвета....я что...в детском саду?...мне схема важна, а не веселые картинки...Когда инспектор надзора (человек лет 60) видит хоть что-то в цвете.....он впадает в панику....
ТО что текст не вошел в состав блока, это уже дело проектировщиков, которые на опыте и практике понимают что им и как удобнее......
Несколько слоев......Ха...когда рисуется архитектура..планы огромных зданий..разводки и т.д......конечно...цвета, слои....Да...Но..когда это просто схема, в которой пытаются работать куча народа....вообще не связанные с автокадом..да иногда и с компом вообще......
Вообще-то я инженер электрик, поэтому знаю, что говорю (о вертикальном тексте). А что, ваша куча народу смотрит на схему в экран компа? Они ведь не связаны с автокадом? Ваш ответ а так-же отсутствие реакции на мои ссылки говорит о том, что с автокадом у вас еще не очень... Ну да ладно-ведь вы только начинаете на форуме учиться.
Vova вне форума  
 
Непрочитано 05.10.2006, 22:59
#17
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Добавлю немножко о цветах и слоях. Они помогают сделать выборку по разным признакам. А следовательно, помогают быстро (а у Red очевидно, всегда спешка на работе) сделать что-то нужное в чертеже. Вот прочтите здесь http://www.autocad.ru/cgi-bin/f1/board.cgi?t=30292aC Какой-бы простейший чертеж ни был, его автор, владеющий разнообразием приемов, никогда не выберет однообразный цвет и найдет, как грамотно распределить по слоям даже те немногочисленные объекры, которые показаны на чертеже Red.
Vova вне форума  
 
Автор темы   Непрочитано 06.10.2006, 15:41
#18
red


 
Регистрация: 30.04.2004
Сообщений: 9


останься при своем личном мнении...с чем у меня очень..а с чем нет..хорошо?
Тебе удобно радугу делать..делай.
А кто что смотрит....слишком длинный путь....менеджеры, закупцы и т.д и т.п.......Могут только открыть и посмотреть!!!..
red вне форума  
 
Непрочитано 06.10.2006, 15:54
#19
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431


Так, народ, брек!
> red : Вам помогло хоть что-то из того, что тут говорилось (именно о Вашей задаче, остальное пока оставим за кадром)? Если да, расскажите, пожалуйста - что именно и как делали.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 14.09.2010, 10:45
#20
Redya


 
Регистрация: 15.07.2008
Сообщений: 195


4 года спустя...
Ребят, у меня действиетльно не меняются значения атрибутов вхождений блоков. Дано много 3D блоков фитингов с атрибутами, для дальнейшего составления спецификации. Уже существует много вхождений этих блоков. Необходимо атрибуты "Завод-изготовитель" и "Артикул" изменить на другие. В редакторе блоков меняю эти значения на нужные (например А на Б). Сохраняю изменения блока. Ввожу команду _AttSync, выбираю вхождение, ок. Значения аттрибутов не меняются. Выполняю команду _battman, выбираю в списке необходимый блок и вижу что нужные мне атрибуты имеют значение Б, т.е. как и надо. Жму Sync, ок. Эффекта нет. Если блок всатвлять через _insert, то всё хорошо, и значения при вставке Б. Все атрибуты invisible, preset, lock position. AC2008 eng. Спасибо. Файл приложить не смогу, весит около 8мб.
P.S.: Удаётся решить эту проблему только через _quickselect и далее в свойствах менять атрибуты на нужные. Какбе по времени много не занимает, но почему предыдущим методом не получается я не понимаю.

Последний раз редактировалось Redya, 14.09.2010 в 10:56.
Redya вне форума  
 
Непрочитано 14.09.2010, 10:45
#21
--Илья--


 
Регистрация: 24.11.2009
Сообщений: 39


Уважаемые, может быть кто-нибудь знает программу аналогичную Attribute Style Editor, но работающую в 2009 Каде?
--Илья-- вне форума  
 
Непрочитано 19.04.2011, 19:04
#22
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,074



Уважаемые, может быть кто-нибудь знает программу аналогичную Attribute Style Editor (http://dwg.ru/dnl/97), но работающую хотя бы в 2006 или в 2008 Каде?
АлексЮстасу вне форума  
 
Непрочитано 01.12.2011, 10:25
1 | #23
Garand


 
Регистрация: 28.10.2008
Сообщений: 26


Что-то типа этого: http://forum.dwg.ru/showthread.php?t...E1%F3%F2%EE%E2 ?
Garand вне форума  
 
Непрочитано 29.10.2015, 13:37 Помогите обновить все блоки
#24
Натальяяяяяяяяя


 
Регистрация: 29.10.2015
Новосибирск
Сообщений: 20


Я добавила в блок атрибут, под названием длина, он благополучно добавился. Блок изменяла в библиотеке. НО!!! нажимаю кнопку синхронизация, чтобы изменить все блоки которые уже есть на чертеже и чтобы к ним добавился атрибут "длина" и не получается!!! что делать....
Натальяяяяяяяяя вне форума  
 
Непрочитано 29.10.2015, 13:45
#25
ProPeller

Пастух
 
Регистрация: 16.07.2012
Питер
Сообщений: 318


Цитата:
Сообщение от Натальяяяяяяяяя Посмотреть сообщение
Я добавила в блок атрибут, под названием длина, он благополучно добавился. Блок изменяла в библиотеке. НО!!! нажимаю кнопку синхронизация, чтобы изменить все блоки которые уже есть на чертеже и чтобы к ним добавился атрибут "длина" и не получается!!! что делать....
Редактировать -> Объект -> Атрибуты -> Диспетчер атрибутов блоков
Выбираете свой блок из списка и жмете кнопку "обновить"
__________________
Автоматизация должна быть автоматической.
ProPeller вне форума  
 
Непрочитано 29.10.2015, 13:53
#26
Натальяяяяяяяяя


 
Регистрация: 29.10.2015
Новосибирск
Сообщений: 20


Цитата:
Сообщение от ProPeller Посмотреть сообщение
Редактировать -> Объект -> Атрибуты -> Диспетчер атрибутов блоков
Выбираете свой блок из списка и жмете кнопку "обновить"
У меня есть "атрибуты"-> "управление" -> " но там в моем блоке не отображается атрибут "длина", суть в том, что я в другом чертеже изменяла эту свою библиотеку блоков...и не могу применить изменения в этом чертеже
Натальяяяяяяяяя вне форума  
 
Непрочитано 29.10.2015, 14:05
#27
ProPeller

Пастух
 
Регистрация: 16.07.2012
Питер
Сообщений: 318


Цитата:
Сообщение от Натальяяяяяяяяя Посмотреть сообщение
У меня есть "атрибуты"-> "управление" -> " но там в моем блоке не отображается атрибут "длина", суть в том, что я в другом чертеже изменяла эту свою библиотеку блоков...и не могу применить изменения в этом чертеже
Не совсем вас понимаю.
Повторите процедуры приведенные в приложениях ниже.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 95
Размер:	36.8 Кб
ID:	159442  Нажмите на изображение для увеличения
Название: 2.png
Просмотров: 76
Размер:	24.4 Кб
ID:	159443  
__________________
Автоматизация должна быть автоматической.
ProPeller вне форума  
 
Непрочитано 29.10.2015, 14:07
#28
Натальяяяяяяяяя


 
Регистрация: 29.10.2015
Новосибирск
Сообщений: 20


у меня вообще нет вкладки "редактировать" . у меня автокад архитектура...

----- добавлено через ~2 мин. -----
Натальяяяяяяяяя вне форума  
 
Непрочитано 29.10.2015, 14:11
#29
ProPeller

Пастух
 
Регистрация: 16.07.2012
Питер
Сообщений: 318


наберите "ДИСПАТБЛК" в командной строке или "_BATTMAN"
__________________
Автоматизация должна быть автоматической.
ProPeller вне форума  
 
Непрочитано 29.10.2015, 14:12
#30
Натальяяяяяяяяя


 
Регистрация: 29.10.2015
Новосибирск
Сообщений: 20


Цитата:
Сообщение от ProPeller Посмотреть сообщение
Не совсем вас понимаю.
Повторите процедуры приведенные в приложениях ниже.
ну я зашла туда куда Вы говорите с помощью команды "диспатблк", обновила, но не получается...новый атрибут не появился
Натальяяяяяяяяя вне форума  
 
Непрочитано 29.10.2015, 14:14
#31
ProPeller

Пастух
 
Регистрация: 16.07.2012
Питер
Сообщений: 318


Цитата:
Сообщение от Натальяяяяяяяяя Посмотреть сообщение
ну я зашла туда куда Вы говорите с помощью команды "диспатблк", обновила, но не получается...новый атрибут не появился
Уверены, что обновили именно ваш блок, а не какой-то другой? Когда добавляли атрибут, не могли случайно установить флаг "Скрытый"? Регенерировать чертеж пробовали?
__________________
Автоматизация должна быть автоматической.
ProPeller вне форума  
 
Непрочитано 29.10.2015, 14:16
#32
Натальяяяяяяяяя


 
Регистрация: 29.10.2015
Новосибирск
Сообщений: 20


Цитата:
Сообщение от ProPeller Посмотреть сообщение
Не совсем вас понимаю.
Повторите процедуры приведенные в приложениях ниже.
вернее даже мой блок обновляется, но наоборот, то есть атрибут "длина" исчезает, остаются только те атрибуты, как и у блоков на чертеже... а когда вновь достаю его из библиотеки этот атрибут "длина" присутствует

----- добавлено через ~1 мин. -----
Цитата:
Сообщение от ProPeller Посмотреть сообщение
Уверены, что обновили именно ваш блок, а не какой-то другой? Когда добавляли атрибут, не могли случайно установить флаг "Скрытый"? Регенерировать чертеж пробовали?
да,я ставила скрытый..чтобы не было видно на чертеже...а что значит "Регенерировать?"

----- добавлено через ~9 мин. -----
Цитата:
Сообщение от ProPeller Посмотреть сообщение
Уверены, что обновили именно ваш блок, а не какой-то другой? Когда добавляли атрибут, не могли случайно установить флаг "Скрытый"? Регенерировать чертеж пробовали?
убрала галочку со "скрытый", сохранила изменения в блоке, но все осталось по-старому
Натальяяяяяяяяя вне форума  
 
Непрочитано 29.10.2015, 14:28
#33
ProPeller

Пастух
 
Регистрация: 16.07.2012
Питер
Сообщений: 318


Цитата:
Сообщение от Натальяяяяяяяяя Посмотреть сообщение
а когда вновь достаю его из библиотеки этот атрибут "длина" присутствует
При вставке из библиотеки, определение блока переопределяете?

Цитата:
Сообщение от Натальяяяяяяяяя Посмотреть сообщение
а что значит "Регенерировать?"
Команда "ВСЕРЕГЕН" или "_REGENALL", в двух словах, это обновление объектов чертежа в соответствии с их текущими параметрами.

Цитата:
Сообщение от Натальяяяяяяяяя Посмотреть сообщение
да,я ставила скрытый..чтобы не было видно на чертеже...
Так а где тогда этот атрибут должен повиться? В свойствах?
__________________
Автоматизация должна быть автоматической.
ProPeller вне форума  
 
Непрочитано 29.10.2015, 14:34
#34
Натальяяяяяяяяя


 
Регистрация: 29.10.2015
Новосибирск
Сообщений: 20


Цитата:
Сообщение от ProPeller Посмотреть сообщение
При вставке из библиотеки, определение блока переопределяете?



Команда "ВСЕРЕГЕН" или "_REGENALL", в двух словах, это обновление объектов чертежа в соответствии с их текущими параметрами.



Так а где тогда этот атрибут должен повиться? В свойствах?
ну и в свойствах тоже, когда щелкаешь по блоку два раза появляется табличка с перечнем атрибутов ,так вот в том блоке который переношу из библиотеки есть атрибут "длина", а в тех что были на чертеже нету
Выполнила команду "всереген", но ничего не произошло

----- добавлено через ~3 мин. -----
Цитата:
Сообщение от ProPeller Посмотреть сообщение
При вставке из библиотеки, определение блока переопределяете?



Команда "ВСЕРЕГЕН" или "_REGENALL", в двух словах, это обновление объектов чертежа в соответствии с их текущими параметрами.



Так а где тогда этот атрибут должен повиться? В свойствах?
в библиотеке щелкаю правой кнопкой по блоку и нажимаю "переопределить", не помогает
и самое странное, что когда выбираю свой блок и обновляю его, как вы посоветовали, он обновляется так, что эта "длина" исчезает...ничего не пойму
Натальяяяяяяяяя вне форума  
 
Непрочитано 29.10.2015, 14:48
#35
ProPeller

Пастух
 
Регистрация: 16.07.2012
Питер
Сообщений: 318


Если я правильно понял. У вас в библиотеке есть блок в котором есть атрибут, а в том определении блока, которое уже есть в чертеже, этого атрибута нет.
В этом случае, переопределение блока из библиотеки, должно обновить определение блока в чертеже, и после обновления через диспетчер атрибутов, все должно встать на свои места, но как я понял, это не помогло, хотя это очень странно.

В библиотеке в блоке атрибут "Скрытый"?

Цитата:
Сообщение от Натальяяяяяяяяя Посмотреть сообщение
ну и в свойствах тоже, когда щелкаешь по блоку два раза появляется табличка с перечнем атрибутов
Если вы хотите, чтобы в свойствах атрибут был, но не отображался на экране, то предлагаю сделать его ничтожно малой высоты и задать ему толщину линии "0.00".
__________________
Автоматизация должна быть автоматической.
ProPeller вне форума  
 
Непрочитано 29.10.2015, 14:53
#36
Натальяяяяяяяяя


 
Регистрация: 29.10.2015
Новосибирск
Сообщений: 20


Цитата:
Сообщение от ProPeller Посмотреть сообщение
Если я правильно понял. У вас в библиотеке есть блок в котором есть атрибут, а в том определении блока, которое уже есть в чертеже, этого атрибута нет.
В этом случае, переопределение блока из библиотеки, должно обновить определение блока в чертеже, и после обновления через диспетчер атрибутов, все должно встать на свои места, но как я понял, это не помогло, хотя это очень странно.

В библиотеке в блоке атрибут "Скрытый"?


Если вы хотите, чтобы в свойствах атрибут был, но не отображался на экране, то предлагаю сделать его ничтожно малой высоты и задать ему толщину линии "0.00".
Да, все правильно понимаете, и мне странно что не помогает( был скрытый, но я убрала эту галочку...все равно все так
Натальяяяяяяяяя вне форума  
 
Непрочитано 29.10.2015, 15:14
#37
ProPeller

Пастух
 
Регистрация: 16.07.2012
Питер
Сообщений: 318


Цитата:
Сообщение от Натальяяяяяяяяя Посмотреть сообщение
был скрытый, но я убрала эту галочку
Для полного понимания, еще раз уточню. Вы убрали галочку из блока который лежит в библиотеке и сохранили это определение или вы убираете галочку тогда, когда этот блок из библиотеки помещен в чертеж? Это важно.
В библиотеке должен лежать блок с заведомо убранным флагом "Скрытый". В противном случае, каждый раз переоределяя блок из библиотеки он вновь будет становиться скрытым и вы так никогда и не увидите свой атрибут.
Скиньте пожалуйста файл блока и чертежа сюда. Может попробую помочь не только словами.
__________________
Автоматизация должна быть автоматической.
ProPeller вне форума  
 
Непрочитано 30.10.2015, 07:39
#38
Натальяяяяяяяяя


 
Регистрация: 29.10.2015
Новосибирск
Сообщений: 20


Цитата:
Сообщение от ProPeller Посмотреть сообщение
Для полного понимания, еще раз уточню. Вы убрали галочку из блока который лежит в библиотеке и сохранили это определение или вы убираете галочку тогда, когда этот блок из библиотеки помещен в чертеж? Это важно.
В библиотеке должен лежать блок с заведомо убранным флагом "Скрытый". В противном случае, каждый раз переоределяя блок из библиотеки он вновь будет становиться скрытым и вы так никогда и не увидите свой атрибут.
Скиньте пожалуйста файл блока и чертежа сюда. Может попробую помочь не только словами.
Да, убираю галочку именно в библиотеке. Когда нажимаю на блоке в библиотеке "переопределить" , с чертежа блоки вообще исчезают.
Натальяяяяяяяяя вне форума  
 
Непрочитано 30.10.2015, 07:42
#39
Натальяяяяяяяяя


 
Регистрация: 29.10.2015
Новосибирск
Сообщений: 20


Цитата:
Сообщение от ProPeller Посмотреть сообщение
Для полного понимания, еще раз уточню. Вы убрали галочку из блока который лежит в библиотеке и сохранили это определение или вы убираете галочку тогда, когда этот блок из библиотеки помещен в чертеж? Это важно.
В библиотеке должен лежать блок с заведомо убранным флагом "Скрытый". В противном случае, каждый раз переоределяя блок из библиотеки он вновь будет становиться скрытым и вы так никогда и не увидите свой атрибут.
Скиньте пожалуйста файл блока и чертежа сюда. Может попробую помочь не только словами.
Вот в верхнем плане здания нужно чтобы блок например "Lisbona LF 105 216 2500" изменился, и появился новый атрибут "длина"
Вложения
Тип файла: dwg
DWG 2010
просто копия.dwg (9.86 Мб, 271 просмотров)
Натальяяяяяяяяя вне форума  
 
Непрочитано 30.10.2015, 07:57
#40
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


после редактирования блоков с атрибутами их необходимо синхронизировать с базой данных чертежа.
к услугам команда _ATTSYNC
Хмурый вне форума  
 
Непрочитано 30.10.2015, 08:17
#41
Натальяяяяяяяяя


 
Регистрация: 29.10.2015
Новосибирск
Сообщений: 20


Цитата:
Сообщение от ProPeller Посмотреть сообщение
Для полного понимания, еще раз уточню. Вы убрали галочку из блока который лежит в библиотеке и сохранили это определение или вы убираете галочку тогда, когда этот блок из библиотеки помещен в чертеж? Это важно.
В библиотеке должен лежать блок с заведомо убранным флагом "Скрытый". В противном случае, каждый раз переоределяя блок из библиотеки он вновь будет становиться скрытым и вы так никогда и не увидите свой атрибут.
Скиньте пожалуйста файл блока и чертежа сюда. Может попробую помочь не только словами.
Спасибо за помощь, но у меня получилось)) я стала взрывать блок и переопределять его заново))) после добавления новых атрибутов)))
Натальяяяяяяяяя вне форума  
 
Непрочитано 09.12.2016, 08:28
#42
baikkott


 
Регистрация: 07.12.2015
Сообщений: 4


Подскажите, пожалуйста, можно ли поменять высоту текста в атрибуте блока при этом что бы динамика блока и местоположение атрибута сохранилось. Через диспетчер атрибутов блока все изменения сделанный до этого в блоке слетают к исходному состоянию.
baikkott вне форума  
 
Непрочитано 09.12.2016, 08:56
#43
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431


После редактирования в редакторе блоков или все же после выполнения _.attsync?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.12.2016, 10:49
#44
baikkott


 
Регистрация: 07.12.2015
Сообщений: 4


Без разницы. В редакторе блоков или через команду battman если изменять высоту все равно атрибут возвращается к исходному положению. Версия Autocad 2014. Во вложении файл нужно изменить высоту шрифта атрибута, при этом чтобы местоположение не изменилось ни атрибута ни самого блока (если была применена динамика).
Вложения
Тип файла: dwg
DWG 2007
Чертеж6.dwg (95.4 Кб, 19 просмотров)
baikkott вне форума  
 
Непрочитано 09.12.2016, 11:29
#45
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


baikkott, что-то с AutoCAD'ом
Вложения
Тип файла: dwg
DWG 2010
Чертеж6.dwg (81.7 Кб, 14 просмотров)
Хмурый вне форума  
 
Непрочитано 09.12.2016, 12:33
#46
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,013


команда hAtt (массовое редактирование высоты атрибутов) в прилагаемом лиспе
Вложения
Тип файла: lsp AttModSuiteV1-1.lsp (28.3 Кб, 108 просмотров)

Последний раз редактировалось Nike, 09.12.2016 в 12:47.
Nike вне форума  
 
Непрочитано 29.01.2020, 17:42 изменение высоты текста в блоках с разным названием
#47
merkur1y

дороги
 
Регистрация: 12.07.2019
СПб
Сообщений: 153


еще 3 года спустя =)
есть ли вариант не вручную менять размер текста в блоках с разными именами, оставляя при этом все примитивы старого размера, и не разбивая блок
каждый создаваемый сторонней программой блок имеет своё имя, но одинаковый размер и параметры текста...
и начало названия, может это как-то облегчает задачу?
Миниатюры
Нажмите на изображение для увеличения
Название: изменение размера текста в блоках с разным именем.PNG
Просмотров: 76
Размер:	23.2 Кб
ID:	222578  Нажмите на изображение для увеличения
Название: изменение размера текста в блоках с разным именем2.PNG
Просмотров: 61
Размер:	21.1 Кб
ID:	222579  Нажмите на изображение для увеличения
Название: изменение размера текста в блоках с разным именем3.PNG
Просмотров: 46
Размер:	21.1 Кб
ID:	222580  

Последний раз редактировалось merkur1y, 29.01.2020 в 17:59.
merkur1y вне форума  
 
Непрочитано 29.01.2020, 18:04
#48
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,187


Цитата:
Сообщение от merkur1y Посмотреть сообщение
каждый создаваемый сторонней программой блок имеет своё имя, но одинаковый размер и параметры текста...
В рамках "лечения по фотографии", без примера блоков в DWG напрашивается тривиальный ответ - дустом стиль текста поменять не пробовали?
kp+ вне форума  
 
Непрочитано 30.01.2020, 09:16
#49
merkur1y

дороги
 
Регистрация: 12.07.2019
СПб
Сообщений: 153


Цитата:
Сообщение от kp+ Посмотреть сообщение
стиль текста поменять
что вы имеете в виду? мне надо изменить высоту текста, а не стиль
merkur1y вне форума  
 
Непрочитано 30.01.2020, 10:14
#50
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,187


Цитата:
Сообщение от merkur1y Посмотреть сообщение
что вы имеете в виду?
Имею ввиду, что Вами предоставлены весьма скудные исходные данные - скриншоты и упоминание о том, что "каждый создаваемый сторонней программой блок имеет своё имя, но одинаковый размер и параметры текста..."
Исходя из них, приняты следующие допущения:
- все тексты в блоках оформлены в одном стиле;
- во всех текстовых объектах сохранены настройки, заданные стилем, без переопределения внутри объекта.
Соответственно, чтобы поменять высоту текста во всех блоках, достаточно один раз поменять настройки соответствующего стиля.
Если же какие-либо допущения неверны, то дальнейший разговор бесполезен до тех пор, пока Вы не предоставите на рассмотрение образцы Ваших блоков в формате DWG.

А если по простому, "пациента" (т.е. образцы блоков в формате DWG) на стол, по фотографии не лечим
kp+ вне форума  
 
Непрочитано 30.01.2020, 11:16
#51
merkur1y

дороги
 
Регистрация: 12.07.2019
СПб
Сообщений: 153


Цитата:
Сообщение от kp+ Посмотреть сообщение
поменять настройки соответствующего стиля
через эту панель?
Миниатюры
Нажмите на изображение для увеличения
Название: стиль текста.PNG
Просмотров: 66
Размер:	17.9 Кб
ID:	222602  
Вложения
Тип файла: dwg
DWG 2010
изменение высоты текста в разноименных блоках.dwg (359.1 Кб, 10 просмотров)
merkur1y вне форума  
 
Непрочитано 30.01.2020, 12:06
1 | 1 #52
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,187


Цитата:
Сообщение от merkur1y Посмотреть сообщение
через эту панель?
Так не выйдет. Высота текста переопределена в самих объектах.

Нашел в загашнике старенький лисп

Код:
[Выделить все]
 (defun bl_h (height / blCol actDoc)
  (if
   (setq blCol(vla-get-Blocks
  (setq actDoc(vla-get-ActiveDocument
      (vlax-get-acad-object)))))
   (progn
     (vlax-for curBl blCol
       (vlax-for Entity curBl
   (if
     (=(vla-get-ObjectName Entity)"AcDbText")
     (progn
       (if
         (not
           (vl-catch-all-error-p
             (vl-catch-all-apply
         'vla-put-height (list Entity height))))
         T
         ); end if
       ); end progn
     ); end if
   ); end vlax-for
       ); end vlax-for
     (vla-Regen actDoc acAllViewports)
     ); end progn
   ); end if
  (princ)
  ); end of Text_Inside_Change
вызов (bl_h 3.5) или какая высота текста нужна.
Будут обработаны все блоки в чертеже, так что пользоваться осторожно.
обратите внимание, что у Вас блоки вставлены в масштабе 1,5.
kp+ вне форума  
 
Непрочитано 30.01.2020, 15:47
#53
merkur1y

дороги
 
Регистрация: 12.07.2019
СПб
Сообщений: 153


спасибо! всё работает отлично... с любой величиной шрифта
merkur1y вне форума  
 
Непрочитано 30.01.2020, 17:06
1 | 1 #54
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,013


Для выборочного изменения:

Код:
[Выделить все]
 
(defun C:th (/ text1 ttext1 tttext1 w1 med1 textw1)
  (setq text1 (nentsel "\N Выберите текст: "))
  (setq tttext1 (car text1)) ;имя
  (setq ttext1 (entget (car text1))) ;описание объекта
  (setq textw1 (cdr (assoc 40 ttext1))) ;значение 
  (setq w1 (getreal "Укажите высоту текста"))
  (setq med1 ttext1)
  (setq med1 (subst (cons 40 w1) (assoc 40 med1) med1))
  (entmod med1)
  (command "_regen")
)
Nike вне форума  
 
Непрочитано 30.01.2020, 17:18
#55
merkur1y

дороги
 
Регистрация: 12.07.2019
СПб
Сообщений: 153


Nike, код работает, но
для моих задач неудобно выбирать по одному тексту из каждого блока
удобно выделить нужные блоки и перенести их в новый файл, чтобы не затрагивались остальные
таких блоков на чертеже может быть и под сотню
и ещё почему у меня при вводе названия вашей команды текст в командной строке кривой?

выглядит примерно так:
N Выберите текст: Укажите высоту текста11

Последний раз редактировалось merkur1y, 30.01.2020 в 17:23.
merkur1y вне форума  
 
Непрочитано 30.01.2020, 17:42
1 | 1 #56
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Цитата:
Сообщение от merkur1y Посмотреть сообщение
задач неудобно выбирать по одному тексту из каждого блока
удобно выделить нужные блоки и перенести их в новый файл, чтобы не затрагивались остальные
таких блоков на чертеже может быть и под сотню
Если так сделать, не удалив эти блоки из исходного чертежа и после этого не почистив его, чтобы следов этих блоков (описаний блоков) не осталось в файле, возвращенные блоки, вставленные после обработки в другом файле, будут иметь прежний, не измененный вид.
skkkk вне форума  
 
Непрочитано 30.01.2020, 17:46
#57
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,187


Цитата:
Сообщение от merkur1y Посмотреть сообщение
выглядит примерно так:
N Выберите текст: Укажите высоту текста11
С теорией такого сбоя кодировок не разбирался, но на практике надо, чтобы при копировании из источника и вставке в Акад была включена русская раскладка
kp+ вне форума  
 
Непрочитано 30.01.2020, 17:51
#58
merkur1y

дороги
 
Регистрация: 12.07.2019
СПб
Сообщений: 153


Цитата:
Сообщение от skkkk Посмотреть сообщение
Если так сделать, не удалив эти блоки из исходного чертежа и после этого не почистив его, чтобы следов этих блоков (описаний блоков) не осталось в файле, возвращенные блоки, вставленные после обработки в другом файле, будут иметь прежний, не измененный вид.
понимаю, это нетрудно =) под словом
Цитата:
Сообщение от merkur1y Посмотреть сообщение
перенести
имеем ввиду вырезать

----- добавлено через ~4 мин. -----
при вводе этого кода

Цитата:
Сообщение от Nike Посмотреть сообщение
Для выборочного изменения:

Код:
[Выделить все]
 
(defun C:th (/ text1 ttext1 tttext1 w1 med1 textw1)
  (setq text1 (nentsel "\N Выберите текст: "))
  (setq tttext1 (car text1)) ;имя
  (setq ttext1 (entget (car text1))) ;описание объекта
  (setq textw1 (cdr (assoc 40 ttext1))) ;значение 
  (setq w1 (getreal "Укажите высоту текста"))
  (setq med1 ttext1)
  (setq med1 (subst (cons 40 w1) (assoc 40 med1) med1))
  (entmod med1)
  (command "_regen")
)
выскакивает это и раскладка не помогает =(

N Выберите текст: Укажите высоту текста11

Последний раз редактировалось merkur1y, 30.01.2020 в 17:56.
merkur1y вне форума  
 
Непрочитано 30.01.2020, 18:41
1 | 1 #59
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431


Сохранять надо как lsp-файл в кодировке ANSI.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 31.01.2020, 09:30
#60
merkur1y

дороги
 
Регистрация: 12.07.2019
СПб
Сообщений: 153


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Сохранять надо как lsp-файл в кодировке ANSI.
элементарно! спасибо!
merkur1y вне форума  
 
Непрочитано 31.01.2020, 10:49
2 | 1 #61
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,013


Для выбираемых блоков

Код:
[Выделить все]
 (defun c:ths (/ i bn_list th i bd el en)
  (setq i 0)
  (setq ss (ssget '((0 . "INSERT"))))
  (setq th (getreal "Укажите высоту текста: "))
  (while (< i (sslength ss))
    (setq bn (cdr (assoc 2 (entget (ssname ss i)))))
    (if (not (member bn bn_list))
      (setq bn_list (append bn_list (list bn)))
    ) ; end if
    (setq i (1+ i))
  ) ;_ end of while
  (setq i 0)
  (while (< i (length bn_list))
    (if (setq bd (tblobjname "block" (nth i bn_list)))
      (while (setq bd (entnext bd))
        (setq el (entget bd))
        (setq en (cdr (assoc 0 el)))
        (if (= en "TEXT")
          (progn
            (setq el (subst (cons 40 th) (assoc 40 el) el))
            (entmod el)
          ) ; end progn
        ) ; end if
      ) ; end while
    ) ; end if
    (setq i (1+ i))
  ) ; end while
  (command "_regenall")
  (princ)
)
Nike вне форума  
 
Непрочитано 04.02.2020, 11:07
#62
merkur1y

дороги
 
Регистрация: 12.07.2019
СПб
Сообщений: 153


Nike, спасибо, идеально =)
merkur1y вне форума  
 
Непрочитано 24.08.2021, 17:20
#63
Mr. Darcy


 
Регистрация: 24.08.2021
Сообщений: 23


Если в чертеже все блоки уникальные (повторяющихся нет), неужели придётся вручную атрибуты перебивать? Или есть способ?
Мне нужно изменить наклон текста в атрибутах (приложенные к теме лиспы редактируют только высоту, но не наклон).

Последний раз редактировалось Mr. Darcy, 24.08.2021 в 17:36.
Mr. Darcy вне форума  
 
Непрочитано 24.08.2021, 21:07
#64
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431


А если поменять настройки текстового стиля?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.08.2021, 00:04
1 | #65
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,187


Цитата:
Сообщение от Mr. Darcy Посмотреть сообщение
Мне нужно изменить наклон текста в атрибутах
Уточните, Вам шашечки или ехать надо изменить угол наклона в определениях атрибутов внутри блоков или в уже вставленных экземплярах?

Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А если поменять настройки текстового стиля?
Если по каким-то причинам настройки каждого атрибута выставлены в свойствах самого атрибута - не поможет.
Только дустом лиспом вроде такого (для определений атрибутов):

Код:
[Выделить все]
 (defun C:ob_at (oblique / blCol actDoc)
  (if
   (setq blCol(vla-get-Blocks
  (setq actDoc(vla-get-ActiveDocument
      (vlax-get-acad-object)))))
   (progn
     (vlax-for curBl blCol
       (vlax-for Entity curBl
   (if
     (=(vla-get-ObjectName Entity)"AcDbAttributeDefinition")
     (progn
       (if
         (not
           (vl-catch-all-error-p
             (vl-catch-all-apply
         'vla-put-obliqueangle (list Entity (/ (* PI oblique) 180)  ))))
         T
         ); end if
       ); end progn
     ); end if
   ); end vlax-for
       ); end vlax-for
     (vla-Regen actDoc acAllViewports)
     ); end progn
   ); end if
  (princ)
  ); end
Правда, если разных блоков действительно очень много,можно замахаться обновлять атрибуты для каждого. Может, кто-то уже написал лисп для массового обновления атрибутов
kp+ вне форума  
 
Непрочитано 25.08.2021, 08:47
1 | #66
Oleg T


 
Регистрация: 27.12.2011
Сообщений: 1,456


Цитата:
Сообщение от kp+ Посмотреть сообщение
Может, кто-то уже написал лисп для массового обновления атрибутов
Где-то в 2018 написал лисп для себя и своей конторы, но под Брикскад.
Очень много чего меняет в свойствах текстов и атрибутов (вплоть до координат), работает с любым количеством атрибутов в любых блоках. Мы пользуемся постоянно.
Под Автокад нужно что-то перерабатывать (сейчас проверил, изначально не срабатывает функция завершения диалоговых окон. Брал её из интернета, сам не программист).
Если кто-то возьмется причесать, выложу. Думаю, и для DOWNLOAD может пригодиться.
ЗЫ
Само собой, наклон, например, меняется только в однострочных текстах/атрибутах (для многострочных это задается стилем). С многострочными гораздо сложнее, там все основное определяется стилем и принудительным форматированием.
Миниатюры
Нажмите на изображение для увеличения
Название: Сохраненное изображение 2021-8-25_8-35-49.935.jpg
Просмотров: 75
Размер:	77.8 Кб
ID:	240043  

Последний раз редактировалось Oleg T, 25.08.2021 в 15:43.
Oleg T вне форума  
 
Непрочитано 25.08.2021, 09:51
1 | 1 #67
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,814


kp+, имхо,
если передавать параметр oblique в команду, то наверное лучше для этого определить функцию
Код:
[Выделить все]
 (defun ob_at...
синтаксис с 9 по 20 я бы заменил на
Код:
[Выделить все]
 (if
	( = (vla-get-ObjectName Entity) "AcDbAttributeDefinition")
    	(vl-catch-all-apply 'vla-put-obliqueangle (list Entity (/ (* PI oblique) 180)))
)
koMon вне форума  
 
Непрочитано 25.08.2021, 10:13
1 | 1 #68
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,187


Раньше так и было, для форума решил переделать в команду, а нормальный запрос угла наклона забыл вставить.
Вечером поправлю, сейчас нет возможности.
И заодно попробую прикрутить обновление атрибутов по всем блокам.
Насчет синтаксиса - исходный лисп взят где-то на просторах этого или другого форума, мои переделки минимальны. А со всякими ловушками ошибок я не дружу, главное, чтоб хоть как-то работало, поэтому оценить красоту и лаконичность исходного и предлагаемого кода не берусь.
kp+ вне форума  
 
Непрочитано 25.08.2021, 11:36
1 | 1 #69
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431


Работать неохота. Как вариант:
Код:
[Выделить все]
 (defun c:ob-at2 (/ _kpblc-conv-vla-to-list oblique adoc layer_status)
  (defun _kpblc-conv-vla-to-list (value / res)
    (cond ((listp value) (mapcar (function _kpblc-conv-vla-to-list) value))
          ((= (type value) 'variant) (_kpblc-conv-vla-to-list (vlax-variant-value value)))
          ((= (type value) 'safearray)
           (if (>= (vlax-safearray-get-u-bound value 1) 0)
             (_kpblc-conv-vla-to-list (vlax-safearray->list value))
           ) ;_ end of if
          )
          ((and (= (type value) 'vla-object) (vlax-property-available-p value 'count))
           (vlax-for sub value (setq res (cons sub res)))
          )
          (t value)
    ) ;_ end of cond
  ) ;_ end of defun
  (if (= (type (setq oblique (vl-catch-all-apply (function (lambda ()
                                                             (cond ((getangle "\nВведите угол наклона от вертикали <0> : "))
                                                                   (t 0.)
                                                             ) ;_ end of cond
                                                           ) ;_ end of lambda
                                                 ) ;_ end of function
                             ) ;_ end of vl-catch-all-apply
               ) ;_ end of setq
         ) ;_ end of type
         'real
      ) ;_ end of =
    (progn (while (> oblique (* pi 0.5)) (setq oblique (- oblique (* pi 0.5))))
           (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))))
           (vlax-for item (vla-get-layers adoc)
             (setq layer_status (cons (cons item
                                            (mapcar (function (lambda (x / temp)
                                                                (setq temp (vlax-get-property item x))
                                                                (vl-catch-all-apply (function (lambda () (vlax-put-property item x :vlax-false))))
                                                              ) ;_ end of lambda
                                                    ) ;_ end of function
                                                    '("freeze" "lock")
                                            ) ;_ end of mapcar
                                      ) ;_ end of cons
                                      layer_status
                                ) ;_ end of cons
             ) ;_ end of setq
           ) ;_ end of vlax-for
           (vlax-for def (vla-get-blocks adoc)
             (if (equal (vla-get-isxref def) :vlax-false)
               (progn (vlax-for sub def
                        (cond ((vlax-property-available-p sub 'obliqueangle) (vla-put-obliqueangle sub oblique))
                              ((= (vla-get-objectname sub) "AcDbBlockReference")
                               (foreach att_ref (_kpblc-conv-vla-to-list (vla-getattributes sub))
                                 (vla-put-obliqueangle att_ref oblique)
                               ) ;_ end of foreach
                              )
                        ) ;_ end of cond
                      ) ;_ end of vlax-for
               ) ;_ end of progn
             ) ;_ end of if
           ) ;_ end of vlax-for
           (vla-endundomark adoc)
    ) ;_ end of progn
  ) ;_ end of if
  (princ)
) ;_ end of defun
ЗЫ особо не тестировал.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.08.2021, 13:05
#70
Mr. Darcy


 
Регистрация: 24.08.2021
Сообщений: 23


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А если поменять настройки текстового стиля?
Увы, нет. Текст изменяет, а атрибуты нет.

----- добавлено через ~4 мин. -----
Цитата:
Сообщение от kp+ Посмотреть сообщение
Уточните, Вам надо изменить угол наклона в определениях атрибутов внутри блоков или в уже вставленных экземплярах?
Не очень понятен вопрос. У меня файл с несколькими сотнями УГО в виде динамических блоков (с ручками, растяжением и пр.) в которых есть атрибуты с наклоном 15. В новой организации (куда я пришёл работать) всё текстовое оформление без наклона.
Mr. Darcy вне форума  
 
Непрочитано 25.08.2021, 14:23
#71
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431


Только сейчас сообразил... По идее многострочные атрибуты, размеры, элементы таблиц и проч., где может быть применено принудительное форматирование, моим кодом обработаться обработаются, но как будут выглядеть результаты - вопрос...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.08.2021, 14:40
1 | 1 #72
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,187


Цитата:
Сообщение от Mr. Darcy Посмотреть сообщение
У меня файл с несколькими сотнями УГО в виде динамических блоков
Надо понимать, это файл базы блоков? Тогда да, надо подкорректировать именно определения блоков.
И предупреждать надо, что блоки динамические, программная работа с ними зачастую отличается от статических, сложнее.
А если еще атрибуты многострочные, да с внутренним форматированием - совсем вешалка.

Вот, подправил свой лисп. Теперь есть запрос угла наклона, и для каждого блока с нормальным именем выполняется синхронизация атрибутов (если они есть). Исключены из обработки безымянные и прочие специальные блоки.
Код:
[Выделить все]
 (defun C:ob_at ( / oblique blCol actDoc hasattrs)
 (setq oblique (getreal "наклон?: "))
 (if
	  (setq blCol(vla-get-Blocks
		       (setq actDoc(vla-get-ActiveDocument
				     (vlax-get-acad-object))))
	  )
   (progn
    (vlax-for curBl blCol
      (setq hasattrs nil)
      (if (and (= (vla-get-IsLayout curBl) :vlax-false) (= (vla-get-Isxref curBl) :vlax-false) (not (vl-string-search "*" (vla-get-name curBl) )))
       (progn	
	(vlax-for Entity curBl
	  (if
	    (=(vla-get-ObjectName Entity)"AcDbAttributeDefinition")
	    (progn
	      (if
		(not
		  (vl-catch-all-error-p
		    (vl-catch-all-apply
		      'vla-put-obliqueangle (list Entity (/ (* PI oblique) 180)  ))))
		T
	      ); end if
	      (setq hasattrs T)
	     ); end progn
	  ); end if
  	 ); end vlax-for entity
         (if hasattrs (vl-cmdf "_attsync" "_n" (vla-get-Name curBl)))
      );
     ) 
    ); end vlax-for curbl
    (vla-Regen actDoc acAllViewports)
   ); end progn
  ); end if
 (princ)
 ); end

Последний раз редактировалось kp+, 25.08.2021 в 20:46.
kp+ вне форума  
 
Непрочитано 26.08.2021, 09:37
#73
Mr. Darcy


 
Регистрация: 24.08.2021
Сообщений: 23


Цитата:
Сообщение от kp+ Посмотреть сообщение
Вот, подправил свой лисп.
Вах! Заработало! Спасибо большое!
Только опять с кодировкой что-то (надо будет повозиться с разным сохранением).
Mr. Darcy вне форума  
 
Непрочитано 21.03.2022, 22:53
#74
DmAK


 
Регистрация: 28.10.2010
Сообщений: 21


Цитата:
Сообщение от Nike Посмотреть сообщение
Для выбираемых блоков

Код:
[Выделить все]
 (defun c:ths (/ i bn_list th i bd el en)
  (setq i 0)
  (setq ss (ssget '((0 . "INSERT"))))
  (setq th (getreal "Укажите высоту текста: "))
  (while (< i (sslength ss))
    (setq bn (cdr (assoc 2 (entget (ssname ss i)))))
    (if (not (member bn bn_list))
      (setq bn_list (append bn_list (list bn)))
    ) ; end if
    (setq i (1+ i))
  ) ;_ end of while
  (setq i 0)
  (while (< i (length bn_list))
    (if (setq bd (tblobjname "block" (nth i bn_list)))
      (while (setq bd (entnext bd))
        (setq el (entget bd))
        (setq en (cdr (assoc 0 el)))
        (if (= en "TEXT")
          (progn
            (setq el (subst (cons 40 th) (assoc 40 el) el))
            (entmod el)
          ) ; end progn
        ) ; end if
      ) ; end while
    ) ; end if
    (setq i (1+ i))
  ) ; end while
  (command "_regenall")
  (princ)
)
Доброго всем времени суток и мирного неба!
Для моего случая этот код подходит.
Вопрос, а можно добавить в этот код выбор определенного стиля текста, к которому будет применено изменение высоты? Спасибо автору за актуальную до сих пор ветку и всем, кто отвечает!
DmAK вне форума  
 
Непрочитано 22.03.2022, 09:51
1 | 1 #75
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


DmAK, добавил переменную с именем стиля, во второй строке надо вписать нужное имя. В строке 18 (из исходного кода) добавил условие - проверку стиля.

Код:
[Выделить все]
  (defun c:ths (/ TStyle i bn_list th i bd el en)
  (setq TStyle "Standard")
  (setq i 0)
  (setq ss (ssget '((0 . "INSERT"))))
  (setq th (getreal "Укажите высоту текста: "))
  (while (< i (sslength ss))
    (setq bn (cdr (assoc 2 (entget (ssname ss i)))))
    (if (not (member bn bn_list))
      (setq bn_list (append bn_list (list bn)))
    ) ; end if
    (setq i (1+ i))
  ) ;_ end of while
  (setq i 0)
  (while (< i (length bn_list))
    (if (setq bd (tblobjname "block" (nth i bn_list)))
      (while (setq bd (entnext bd))
        (setq el (entget bd))
        (setq en (cdr (assoc 0 el)))
        (if (and (= en "TEXT") (= (cdr (assoc 7 el)) TStyle))
          (progn
            (setq el (subst (cons 40 th) (assoc 40 el) el))
            (entmod el)
          ) ; end progn
        ) ; end if
      ) ; end while
    ) ; end if
    (setq i (1+ i))
  ) ; end while
  (command "_regenall")
  (princ)
 )
skkkk вне форума  
 
Непрочитано 22.03.2022, 10:37
#76
koui


 
Регистрация: 24.01.2017
Сообщений: 125


Немного схожий вопрос, спрошу тут же: а как сделать цвета всех блоков "По Слою"? приходят чертежи АР шибко разноцветные, там все элементы типа дверей/окон выполнены блоками с уникальными именами (видимо, экспорт из Ревит). цвета присвоены внутри блока. заходить в каждый блок и менять очень долго. разрывать блоки не хочу, но приходится.
koui вне форума  
 
Непрочитано 22.03.2022, 11:06
#77
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,013


Цитата:
Сообщение от koui Посмотреть сообщение
цвета всех блоков "По Слою"
Подготовка подосновы
BGBLFIX - Нормализация блоков
Nike вне форума  
 
Непрочитано 22.03.2022, 12:23
#78
koui


 
Регистрация: 24.01.2017
Сообщений: 125


Цитата:
Сообщение от Nike Посмотреть сообщение
Подготовка подосновы
BGBLFIX - Нормализация блоков
ох, точно, спасибо! я даже видел этот лисп, к своему стыду, тогда подумал, что оно мне не нужно.
koui вне форума  
 
Непрочитано 28.03.2022, 08:07
#79
Mr. Darcy


 
Регистрация: 24.08.2021
Сообщений: 23


Цитата:
Сообщение от koui Посмотреть сообщение
а как сделать цвета всех блоков "По Слою"?
Команда setbylayer
Mr. Darcy вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как изменить размер текста во всех блоках с одинаковым имене

Реклама i