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

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

Помогите создать многострочный атрибут из значений других атрибутов

Ответ
Поиск в этой теме
Непрочитано 18.10.2024, 11:21 #1
Помогите создать многострочный атрибут из значений других атрибутов
Shans83
 
Регистрация: 18.10.2024
Сообщений: 9

Всем доброго времени.

Всегда создавал многострочный атрибут в редакторе блока, затем в "Модели" вставлял необходимые "Поля" и всё.

Недавно наткнулся на динамический блок в котором все уже вставлено в редакторе блоков (блок прикладываю)

Помогите разобраться как это сделано: Получается тут в значении многострочного атрибута вставлены два поля "LETTER" и "NUM1", которые выдают значения одноименных атрибутов.

Если удалить данные атрибуты "LETTER" и "NUM1", и создать вновь то многострочный атрибут будет выводить их значение.

Заранее спасибо

Миниатюры
Нажмите на изображение для увеличения
Название: 2024-10-18_11-14-26.jpg
Просмотров: 40
Размер:	49.3 Кб
ID:	265152  

Вложения
Тип файла: dwg
DWG 2013
Точка доступа.dwg (82.9 Кб, 17 просмотров)

Просмотров: 644
 
Непрочитано 18.10.2024, 11:38
#2
Кулик Алексей aka kpblc
Moderator

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


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


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Сейчас када под рукой нет. Попробуй сделать двойной клик на поле - посмотришь, как оно организовано.
Под двойному клику открывается редактор "Поле" и в нём открывается "МетосзаполнительБлока"
Миниатюры
Нажмите на изображение для увеличения
Название: 2024-10-18_11-40-16.jpg
Просмотров: 28
Размер:	95.2 Кб
ID:	265154  
Shans83 вне форума  
 
Непрочитано 18.10.2024, 11:46
#4
Кулик Алексей aka kpblc
Moderator

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


Ну вот и объяснение, как это сделано
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 18.10.2024, 11:49
#5
Shans83


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Ну вот и объяснение, как это сделано
Как? Путем создания поля с весом линий ?

По возможности откройте в автокаде, мне вот не понятно, всегда полагал что значение атрибута можно вставлять только с привязкой к блоку, а тут оказывается не обязательно
Shans83 вне форума  
 
Непрочитано 18.10.2024, 12:06
#6
Сергей812


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


Цитата:
Сообщение от Shans83 Посмотреть сообщение
По возможности откройте в автокаде, мне вот не понятно, всегда полагал что значение атрибута можно вставлять только с привязкой к блоку, а тут оказывается не обязательно
не путайте вставку самого атрибута блока и его содержимое с полем внутри.

А поле по сути - это особым образом форматированная строка или ее фрагмент, которая впоследствии декодируется самим акадом с подстановкой соответствующих значений при необходимости. Поэтому, как писал выше Алексей, смотрите образец этого форматирования в готовом поле (можно скопировать это содержимое в тот же блокнот и там собрать нужную строку из скопированных нескольких полей, а потом обратно вставить в поле атрибута).
Сергей812 вне форума  
 
Автор темы   Непрочитано 18.10.2024, 13:57
#7
Shans83


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
можно скопировать это содержимое в тот же блокнот
Добрый день, Сергей.

Можете сюда скопировать, ну или хотя бы открыть автокад и добраться до данного фрагмента и сделать скриншот ?
Shans83 вне форума  
 
Непрочитано 18.10.2024, 14:12
#8
Сергей812


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


Скопировать чего? Заходите в редактор атрибутов путем двойного клика по атрибуту. Поскольку ID многострочный атрибут, то справа от поля значения атрибута становится активной кнопка с тремя точками. Нажав эту кнопку, оказываетесь в редакторе многострочного атрибута и там сразу видно, что вставлено в первой строке два поля и постоянная точка между ними. И двойным кликом по каждому из серых прямоугольников-полей заходите в диалог задания поля. То что вам нужно - находится в самом низу диалога задания поля, копировать полностью.
Сергей812 вне форума  
 
Автор темы   Непрочитано 18.10.2024, 14:16
#9
Shans83


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Скопировать чего? Заходите в редактор атрибутов путем двойного клика по атрибуту. Поскольку ID многострочный атрибут, то справа от поля значения атрибута становится активной кнопка с тремя точками. Нажав эту кнопку, оказываетесь в редакторе многострочного атрибута и там сразу видно, что вставлено в первой строке два поля и постоянная точка между ними. И двойным кликом по каждому из серых прямоугольников-полей заходите в диалог задания поля. То что вам нужно - находится в самом низу диалога задания поля, копировать полностью.
Сергей, если вам сложно открыть блок автокада, так зачем вы пытаетесь что то писать?

Обычно, точнее сказать всегда, это сделать легко, а тут я не понимаю как создали данное поле.
Shans83 вне форума  
 
Непрочитано 18.10.2024, 14:34
#10
AMDen

Инженер-проектировщик
 
Регистрация: 07.07.2016
Санкт-Петербург
Сообщений: 756


Т.к. в местозаполнители атрибуты не появляются, данные поля скорее всего собраны через "танцы с бубном" (через блокнот или приложение). Проще тогда в редакторе блока ссылаться полем на атрибут как объект. Тоже работать будет. Только при вставке блока надо будет какой-нибудь динамический параметр изменить.
AMDen вне форума  
 
Автор темы   Непрочитано 18.10.2024, 14:41
#11
Shans83


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


Цитата:
Сообщение от AMDen Посмотреть сообщение
Т.к. в местозаполнители атрибуты не появляются, данные поля скорее всего собраны через "танцы с бубном" (через блокнот или приложение). Проще тогда в редакторе блока ссылаться полем на атрибут как объект. Тоже работать будет. Только при вставке блока надо будет какой-нибудь динамический параметр изменить.
И я о том. Мне вот интересны эти "танцы с бубном".

Склоняюсь к тому, что через формулу загнали какое-то выражение, которое ищет определенный атрибут в блоке и берет из него содержимое.
Shans83 вне форума  
 
Непрочитано 18.10.2024, 15:00
#12
name02


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


Делается это несложно.
1. Создаем блок с тремя атрибутами. Атритубы АТТ1 и АТТ2 будут исходными, в АТТ3 будем вставлять значения из АТТ1 и АТТ2
Нажмите на изображение для увеличения
Название: Шаг1.png
Просмотров: 15
Размер:	33.2 Кб
ID:	265158

2. Кликаем два раза по блоку и открывается окно редактирования атрибутов. Кликаем в строку АТТ3 и затем правой кнопкой мыши в строку "Значение" и появившемся меню "Вставить поле..."
Нажмите на изображение для увеличения
Название: Шаг2.png
Просмотров: 15
Размер:	26.2 Кб
ID:	265159

3. В появившемся окне выполняем выбор как показано на рисунке - это мы в АТТ3 вставляем поле со значением атрибута АТТ1:
Нажмите на изображение для увеличения
Название: Шаг3.png
Просмотров: 14
Размер:	45.0 Кб
ID:	265160

4. Повторяем аналогично и для атрибута АТТ2. И в итоге в поле "Значение" атрибута АТТ3 будет прописано следующее:
Нажмите на изображение для увеличения
Название: Шаг4.png
Просмотров: 12
Размер:	19.6 Кб
ID:	265161

5. Закрываем окно кнопкой ОК. Блок примет вид:
Нажмите на изображение для увеличения
Название: Шаг5.png
Просмотров: 12
Размер:	7.2 Кб
ID:	265163

Теперь при изменении значений атрибутов АТТ1 и АТТ2 и РЕГЕНЕРАЦИИ чертежа, значение атрибута АТТ3 тоже будет меняться.
name02 вне форума  
 
Автор темы   Непрочитано 18.10.2024, 15:02
#13
Shans83


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


Цитата:
Сообщение от name02 Посмотреть сообщение
Делается это несложно.
1. Создаем блок с тремя атрибутами. Атритубы АТТ1 и АТТ2 будут исходными, в АТТ3 будем вставлять значения из АТТ1 и АТТ2
Вложение 265158

2. Кликаем два раза по блоку и открывается окно редактирования атрибутов. Кликаем в строку АТТ3 и затем правой кнопкой мыши в строку "Значение" и появившемся меню "Вставить поле..."
Вложение 265159

3. В появившемся окне выполняем выбор как показано на рисунке - это мы в АТТ3 вставляем поле со значением атрибута АТТ1:
Вложение 265160

4. Повторяем аналогично и для атрибута АТТ2. И в итоге в поле "Значение" атрибута АТТ3 будет прописано следующее:
Вложение 265161

5. Закрываем окно кнопкой ОК. Блок примет вид:
Вложение 265163

Теперь при изменении значений атрибутов АТТ1 и АТТ2 и РЕГЕНЕРАЦИИ чертежа, значение атрибута АТТ3 тоже будет меняться.
Это как-то связано с темой обсуждения?
Shans83 вне форума  
 
Непрочитано 18.10.2024, 15:08
#14
name02


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


Мне показалось что да. Все-таки тема называется "Помогите создать многострочный атрибут из значений других атрибутов"

Ты напиши подробнее - что у тебя не получается (например - не понимаю как запихнуть значения двух атрибутов в третий атрибут или удалил атрибуты из блока, а они все равно присутствуют в блоке)?
Правильно заданный вопрос уже половина ответа!
name02 вне форума  
 
Непрочитано 18.10.2024, 15:12
#15
Demonakor


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


Вроде разобрался. Надо вставить в атрибут этот текст:
%<\AcObjProp Object(?BlockRefId,1).XXX>%
где вместо XXX подставить тег атрибута, на который нужно сослаться (напимер LETTER или NUM1).
Demonakor вне форума  
 
Непрочитано 18.10.2024, 15:17
1 | #16
Admin
Administrator


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


Offtop:
Цитата:
Сообщение от Shans83 Посмотреть сообщение
Это как-то связано с темой обсуждения?
Не зря в правилах форума написано: "4.3. ... Основной вопрос темы и должен быть ее заголовком."
Admin вне форума  
 
Автор темы   Непрочитано 18.10.2024, 15:21
#17
Shans83


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


Цитата:
Сообщение от Demonakor Посмотреть сообщение
Вроде разобрался. Надо вставить в атрибут этот текст:
%<\AcObjProp Object(?BlockRefId,1).XXX>%
где вместо XXX подставить тег атрибута, на который нужно сослаться (напимер LETTER или NUM1).
Тоже была такая мысль, но не получается.
Это ведь в "Формула" надо прописывать?
Shans83 вне форума  
 
Непрочитано 18.10.2024, 15:24
1 | 1 #18
Demonakor


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


Нет, прямо в строчку "По умолчанию:"

UPD: или в сам текст многострочного атрибута.
Миниатюры
Нажмите на изображение для увеличения
Название: Screenshot_127.jpg
Просмотров: 19
Размер:	43.8 Кб
ID:	265165  
Demonakor вне форума  
 
Автор темы   Непрочитано 18.10.2024, 15:31
#19
Shans83


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


Цитата:
Сообщение от Demonakor Посмотреть сообщение
Нет, прямо в строчку "По умолчанию:"

UPD: или в сам текст многострочного атрибута.
Спасибо!!!

24 года в автокаде прошли не зря

Реально работает, Спасибо!
Shans83 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Динамические блоки > Помогите создать многострочный атрибут из значений других атрибутов



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите создать тип линии с окружностями для автокад Vladkuzmiin AutoCAD 1 08.12.2022 20:49
SW2021 Помогите создать касательную поверхность к полости формы Creator SolidWorks 6 30.11.2021 12:16
Замена тегов атрибутов в блоках с сохранением значений. Krovlaf AutoCAD 23 19.06.2020 18:02
Извлечение значений атрибутов динамического блока и создание таблицы Autocad VBA Abai Программирование 17 17.07.2017 09:00
Помогите создать блок масштабирование на VBA. sashafedorov82 Программирование 4 25.06.2016 14:56