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

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

Автоматические изменение текстовых меток в блоке при редактировании одного атрибута

Ответ
Поиск в этой теме
Непрочитано 30.11.2018, 15:28 #1
Автоматические изменение текстовых меток в блоке при редактировании одного атрибута
Сет
 
Регистрация: 19.11.2014
Сообщений: 2,435

Делаю блок для обозначения сечений и разрезов (см. вложение). Сейчас номер сечения - это два многострочных атрибута. Чтобы изменить этот номер - мне нужно их вручную оба отредактировать, что не очень удобно. Можно ли сделать редактирование номера сечения через редактирование только одного атрибута, желательного однострочного, возможно скрытого. То есть как я хочу, чтобы этот блок работал - дважды кликаю на экземпляр блока, открывается редактор атрибутов, там находится всего лишь один однострочный атрибут, я меняю его значение, автоматически меняются значения моих многострочных меток, обозначающих номер сечения.

Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 18
Размер:	4.7 Кб
ID:	208605  

Просмотров: 5389
 
Непрочитано 30.11.2018, 15:37
#2
Кулик Алексей aka kpblc
Moderator

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


В "Моих динамических блоках" вопрос, насколько я помню, поднимался
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 03.12.2018, 11:33
#3
Сет


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
В "Моих динамических блоках" вопрос, насколько я помню, поднимался
Сложно в этой огромной теме что-то найти. Там этот вопрос был решен?
Сет вне форума  
 
Непрочитано 03.12.2018, 12:06
1 | 1 #4
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,039


А зачем искать, просто по аналогии сообразить)
Есть атрибут Tag1, например.
1. Смотрим в поле местозаполнителяблока (чтобы не зависеть от конкретного примитива) например для имени блока:
Цитата:
%<\AcObjProp.16.2 Object(?BlockRefId,1).EffectiveName>%
2. Копируем в блокнот и меняем параметр имя блока EffectiveName на значение атрибута Tag1.TextString:
Цитата:
%<\AcObjProp.16.2 Object(?BlockRefId,1).Tag1.TextString>%
3. Делаем второй атрибут, для значения по умолчанию выбираем поле и там формула. Вставляем из блокнота сформированную строку из п.2.
Сергей812 вне форума  
 
Непрочитано 03.12.2018, 12:08
#5
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 893


1. Добавляете атрибут, помещаете его на непечатаемый слой (скрытый не будет отображаться на панели свойств)
2. В номера сечения вставляете поле (вставить поле - объект - выбираете нами созданный атрибут - выбираем свойство "значение" - ставим галку "отображать значение для вхождения блока)
Усё.
-------------------------------------
Вот странно. 1 раз сработало, а потом вместо значений "решетки" пошли
-------------------------------------
И снова заработало нормально...
-------------------------------------
Лучше сделать как предлагает Сергей812 в предыдущем сообщении

Последний раз редактировалось kacugu, 03.12.2018 в 16:01.
kacugu вне форума  
 
Непрочитано 03.12.2018, 12:13
| 1 #6
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,039


Цитата:
Сообщение от kacugu Посмотреть сообщение
(скрытый не будет отображаться на панели свойств)
во вставке блока не будет отображаться, а не в панели свойств - иначе как со скрытыми атрибутами простому пользователю работать)
Сергей812 вне форума  
 
Автор темы   Непрочитано 03.12.2018, 15:21
#7
Сет


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


Цитата:
Сообщение от kacugu Посмотреть сообщение
ставим галку "отображать значение для вхождения блока
А где эта галка находится?

----- добавлено через ~8 мин. -----
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Смотрим в поле местозаполнителяблока
Где это поле находится? Я через команду вставки поля извлекаю из атрибута формулу его значения:

Цитата:
%<\AcObjProp Object(%<\_ObjId 2425548324592>%).TextString>%
Но при изменении атрибута значение в этом поле не меняется.
Сет вне форума  
 
Непрочитано 03.12.2018, 15:57
#8
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,039


Цитата:
Сообщение от Сет Посмотреть сообщение
Где это поле находится?
категория полей: Объекты

Цитата:
Сообщение от Сет Посмотреть сообщение
Я через команду вставки поля извлекаю из атрибута формулу его значения:
Читаем еще раз п.4

Цитата:
Сообщение от Сет Посмотреть сообщение
%<\AcObjProp Object(%<\_ObjId 2425548324592>%).TextString>%
Но при изменении атрибута значение в этом поле не меняется.
Не должно быть ObjId 2425548324592 - это идентификатор объекта в базе данных именно этого чертежа. Другая вставка, другой чертеж - будет кривая ссылка.
Сергей812 вне форума  
 
Непрочитано 03.12.2018, 16:04
#9
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 893


Сет, лучше сделать как предлагает Сергей812 в п. 4. Предложенный мною способ в п.5 показал себя в работе некорректно.
kacugu вне форума  
 
Непрочитано 03.12.2018, 17:20
#10
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,826
<phrase 1=


Сет, посмотри, наверно поможет
https://dwg.ru/dnl/14381
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Автор темы   Непрочитано 03.12.2018, 17:54
#11
Сет


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
категория полей: Объекты
И где здесь та самая строка (вложение)? Внизу формула по структуре отличается.

----- добавлено через 53 сек. -----
Цитата:
Сообщение от zenon Посмотреть сообщение
посмотри, наверно поможет
https://dwg.ru/dnl/14381
Глянул, там блок сечения не работает так, как я хочу. Нужно вручную менять оба номера сечения.
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 26
Размер:	12.3 Кб
ID:	208679  
Сет вне форума  
 
Непрочитано 03.12.2018, 18:05
#12
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,039


Цитата:
Сообщение от Сет Посмотреть сообщение
И где здесь та самая строка (вложение)? Внизу формула по структуре отличается.
А нечего, что в соседнем списке русским языком написано - что только в редакторе блоков это поле доступно для работы?)
Сергей812 вне форума  
 
Автор темы   Непрочитано 03.12.2018, 18:16
#13
Сет


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
А нечего, что в соседнем списке русским языком написано - что только в редакторе блоков это поле доступно для работы?)
Так я в редакторе его и открыл.
Сет вне форума  
 
Непрочитано 03.12.2018, 18:23
#14
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,039


Цитата:
Сообщение от Сет Посмотреть сообщение
Так я в редакторе его и открыл.
на скриншоте поста №11 показывает, что не в редакторе. Соответственно и формула отличается.
Сергей812 вне форума  
 
Автор темы   Непрочитано 03.12.2018, 18:45
#15
Сет


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
на скриншоте поста №11 показывает, что не в редакторе. Соответственно и формула отличается.
Ну как же не в редакторе? Именно в нем.
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 36
Размер:	80.3 Кб
ID:	208680  
Сет вне форума  
 
Непрочитано 03.12.2018, 19:01
#16
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,039


Скриншот к п.1 поста №4
Миниатюры
Нажмите на изображение для увеличения
Название: Местозаполнитель блока.JPG
Просмотров: 26
Размер:	49.0 Кб
ID:	208681  
Сергей812 вне форума  
 
Автор темы   Непрочитано 03.12.2018, 20:00
#17
Сет


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Скриншот к п.1 поста №4
У меня почему-то поле "имя блока" пустое. Как туда его вписать?

----- добавлено через ~7 мин. -----
А, понял. Это я открывал диалоговое окно "Поле" через главное меню Вставка->Поле, а надо было через значение по умолчанию для добавляемого атрибута. Сделал по посту 4. В итоге значение поля меняется, но чтобы оно отобразилось - нужно выполнить регенерацию. Можно как-то сделать, чтобы замена производилась сразу по факту редактирования атрибута?
Сет вне форума  
 
Непрочитано 03.12.2018, 20:14
#18
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,039


Цитата:
Сообщение от Сет Посмотреть сообщение
Можно как-то сделать, чтобы замена производилась сразу по факту редактирования атрибута?
автоматом - нет. В этом минус полей - они не интерактивны, это просто привязка данных. Есть переменная FIELDEVAL, но она не настраивается на каждое изменение примитивов. Интерактивность достигается программными способами, например - с подвешиванием на события изменения БД чертежа.
Сергей812 вне форума  
 
Непрочитано 10.04.2019, 17:08
#19
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 893


Сергей812, не подскажете в чём может быть ошибка?
Переделал свой блок разреза по п. 4. Если номер разреза задавать числом, то всё работает нормально. Если же задать буквенное значение разреза, то появляются решётки.
kacugu вне форума  
 
Непрочитано 10.04.2019, 17:23
1 | #20
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,039


Цитата:
Сообщение от kacugu Посмотреть сообщение
Если номер разреза задавать числом, то всё работает нормально. Если же задать буквенное значение разреза, то появляются решётки.
попробовал по п.4 связать два атрибута - исправно передает через поле значение первого атрибута во второй. Значение атрибута текстовое само по себе, ему должно быть без разницы - число, строка..
Сергей812 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Автоматические изменение текстовых меток в блоке при редактировании одного атрибута

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение значения атрибута в динамическом блоке mikmik Динамические блоки 12 19.05.2016 15:40
Как изменить ширину MText атрибута во вставленном блоке ? Roman3R AutoCAD 7 23.09.2011 17:40
Как в динамическом блоке вставить значение из атрибута блока в значение параметрического размера(внутри блока)? swcats Динамические блоки 3 22.07.2011 08:50
Изменение ширины текста многострочного атрибута Алексий31 AutoCAD 4 21.07.2011 14:00
Многократное предстваление одного и того же атрибута в одном блоке. Дерищев Максим AutoCAD 3 21.04.2010 02:05