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

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

Автоматическое обновление атрибута в динамическом блоке

Ответ
Поиск в этой теме
Непрочитано 28.06.2024, 00:30 #1
Автоматическое обновление атрибута в динамическом блоке
Evleos
 
Регистрация: 28.06.2024
Сообщений: 12

Доброго времени суток.
Дано:
Динамический блок в котором имеется растяжение по ширине. Растяжение происходит с помощью Линейный/растянуть. В блоке имеется атрибут который подтягивает значение линии, подвергаемой растяжению.
Задача:
Необходимо, что бы при изменении ширины блока с помощью ручки выбора, изменяющей ширину, происходило автоматическое изменение данных атрибута.

В данный момент, что бы данные обновились необходимо зайти в блок и выйти из него, только тогда он меняет значение ширины блока.
Файл с блоком прилагаю. AutoCAD 2022.

Вложения
Тип файла: dwg
DWG 2018
Чертеж1.dwg (97.0 Кб, 32 просмотров)

Просмотров: 2700
 
Непрочитано 28.06.2024, 07:01
1 | #2
name02


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


Заходить в блок не надо. Для обновления значения атрибута после изменения длины надо обновить чертеж - команда _REGEN
name02 вне форума  
 
Автор темы   Непрочитано 28.06.2024, 08:30
#3
Evleos


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


Цитата:
Сообщение от name02 Посмотреть сообщение
Заходить в блок не надо. Для обновления значения атрибута после изменения длины надо обновить чертеж - команда _REGEN
Возможно ли обновление данных атрибута без обновления чертежа командой? Может быть есть иной способ позволяющий выводить фактическое значение ширины?
Evleos вне форума  
 
Непрочитано 28.06.2024, 08:38
#4
name02


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


Мне неизвестен другой способ. А чем такой не подходит?
name02 вне форума  
 
Автор темы   Непрочитано 28.06.2024, 08:57
#5
Evleos


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




Смысл в том что этот динамический блок изделие, которое имеет артикул, для разных габаритов соответственно артикул свой, мне нужно понять как сделать так что бы в реальном времени изменялся артикул, формулу для артикула написать не проблема, а вот так что бы данные этого артикула изменялись одновременно с изменениями блока важно. Чертеж с блоками будет распространяться и контингент, который будет им пользоваться зачастую не заморачивается от слова совсем, даже если напишу инструкцию с указанием в необходимости обновления чертежа она будет скорее всего игнорироваться. А если чертеж не обновлять, отражаемый артикул будет некорректным ну и дальше начинаются проблемы. Читал, что возможно решение через смещение атрибута. Т.е. к атрибуту подвязывается линейный/перемещение и таким образом при изменении блока атрибут так сказать "подпинывается" и происходит его обновление, но у меня так не получилось. Возможно сделал что то не так. Решение через видимость не подходит по ряду причин, в частности далее будут блоки с архитектурой куда сложнее и там без видимости не обойтись. В целом возможно есть и другое решение, не через атрибуты, но я не знаю где ещё копать. В целом ситуацию и задачу я описал, необходимо любое рабочее решение. Заранее спасибо.
Evleos вне форума  
 
Непрочитано 28.06.2024, 09:19
#6
name02


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


Может тебе попробовать реализовать блок через Таблицу свойств блока? Но для этого придется его переделывать.
name02 вне форума  
 
Автор темы   Непрочитано 28.06.2024, 09:46
#7
Evleos


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


Цитата:
Сообщение от name02 Посмотреть сообщение
Может тебе попробовать реализовать блок через Таблицу свойств блока? Но для этого придется его переделывать.
Таблица свойств блока может быть только одна, т.е. две ручки (по высоте и ширине) уже не сделать. Артикул основан на высоте и ширине.
Evleos вне форума  
 
Непрочитано 28.06.2024, 10:13
#8
name02


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


Попробуй, посмотри способ для имитации нескольких видимостей, может что-то придумаешь
https://forums.autodesk.com/t5/semey...m/td-p/8213366
name02 вне форума  
 
Непрочитано 28.06.2024, 10:17
#9
Сергей812


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


Цитата:
Сообщение от Evleos Посмотреть сообщение
Таблица свойств блока может быть только одна, т.е. две ручки (по высоте и ширине) уже не сделать. Артикул основан на высоте и ширине.
выбор строки в таблице блока можно сделать иерархическим - сначала выбирают, например, высоту. А в потом в подсписке - ширину.
Сергей812 вне форума  
 
Непрочитано 28.06.2024, 10:29
1 | #10
VitalyAF


 
Регистрация: 19.07.2005
Россия
Сообщений: 3,288


battman может атрибуты синхронизировать...
...Но я бы другим путём пошёл, не тянул каждый блок, чтобы артикул сменился, а выбирал нужные блоки по атрибутам и назначал им артикул из списка. И с обновлением проблем вроде не было. Для выбора дин. блоков по атрибутам был когда-то давно лиспик, м.б. щас уже что-то более продвинутое есть...
PS
...когда-то чертежи делал марки KM из нескольких динблоков, внутри каждого таблицы с размерами из справочников...
Их тьма в конструкции, каждый не потянешь... Выбирал, назначал новый номер проката,
обновлял таблицы с весом и проч... Они (частная компашка) даже не поняли, какой я им механизм подбросил... гордились, что быстро чертят в Autocad LITE... )))

Последний раз редактировалось VitalyAF, 28.06.2024 в 10:45.
VitalyAF вне форума  
 
Непрочитано 28.06.2024, 10:31
1 | #11
Demonakor


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


А зачем выбирать расстояния через выбор? Можно же задать список возможных значений линейным параметрам, и в зависимости от их комбинации выводить нужную видимость, где обычным текстом будет подписан артикул.
Demonakor вне форума  
 
Автор темы   Непрочитано 28.06.2024, 12:28
#12
Evleos


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


Это все игра с видимостью, но она уже необходима для второй ручки двери.
Но хорошо, допустим я воспользуюсь видимостью, в таком случае я имею 8 вариантов выбора по высоте и 2 по ширине в итоге 16 видимостей на 16 артикулов. По сути я просто предусматриваю все комбинации возможного выбора. Но если выбор будет осуществляться с большим количеством выбираемых параметров, то количество видимостей будет колоссально. Плюс большинство пользователей желают использовать ручку а не ползунок. В целом применение видимости достаточно топорный выход, а иногда и невозможный если нужно что бы видимость меняла другой объект. Хотелось бы найти способ для автоматизирования процесса, а не предусматривать все возможные варианты событий.


----- добавлено через ~3 мин. -----
Цитата:
Сообщение от VitalyAF Посмотреть сообщение
battman может атрибуты синхронизировать...
...Но я бы другим путём пошёл, не тянул каждый блок, чтобы артикул сменился, а выбирал нужные блоки по атрибутам и назначал им артикул из списка. И с обновлением проблем вроде не было. Для выбора дин. блоков по атрибутам был когда-то давно лиспик, м.б. щас уже что-то более продвинутое есть...
PS
...когда-то чертежи делал марки KM из нескольких динблоков, внутри каждого таблицы с размерами из справочников...
Их тьма в конструкции, каждый не потянешь... Выбирал, назначал новый номер проката,
обновлял таблицы с весом и проч... Они (частная компашка) даже не поняли, какой я им механизм подбросил... гордились, что быстро чертят в Autocad LITE... )))

На сколько понимаю это реверсивное решение. Не я меняю ширину и меняется артикул, а я меняю артикул меняется ширина. Это немного не то. Артикул это дополнительный элемент. Основной элемент это управление шириной и высотой, а артикул реагирует на изменения основных параметров
Evleos вне форума  
 
Непрочитано 28.06.2024, 12:54
1 | #13
Demonakor


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


Чтобы скрыть одну из ручек видимость не нужна - достаточно совместить её со второй ручкой перемещением.
Но если видимостями заниматься не хочется - можно вывести нужные числа длины и ширины обычными линейными размерами (в свойствах этих размеров отключить размерные и выносные линии).
Миниатюры
Нажмите на изображение для увеличения
Название: GIF 28.06.2024 13-06-19.gif
Просмотров: 56
Размер:	799.3 Кб
ID:	263588  

Последний раз редактировалось Demonakor, 28.06.2024 в 13:09.
Demonakor вне форума  
 
Автор темы   Непрочитано 28.06.2024, 13:30
#14
Evleos


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



Выглядит интересно, можно пожалуйста прикрепить этот файл? Поэкспериментирую
Evleos вне форума  
 
Непрочитано 28.06.2024, 13:44
1 | #15
Demonakor


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


Да я его не сохранял... Просто прикрепил 2 размера к вертикальной и к горизонтальной линиям внутри блока, отключил у них отображение линий, у вертикального размера сделал наклон текста 0,001 и перенёс числовые значения в свободное место (чтобы текст не перемещался при изменении размера).
Demonakor вне форума  
 
Непрочитано 28.06.2024, 13:57
1 | #16
VitalyAF


 
Регистрация: 19.07.2005
Россия
Сообщений: 3,288


Цитата:
Сообщение от Evleos Посмотреть сообщение
Не я меняю ширину и меняется артикул, а я меняю артикул меняется ширина.
Если это Двери, то да, так! будет правильно. Для каждого артикула свои габаритные р-ры и расположение элементов.
Достаточно будет только артикул сменить. Т.е. "выбрать" готовую строку из таблицы, она же пойдёт в спеку! ...Даже проще, чем на видео выше!
VitalyAF вне форума  
 
Автор темы   Непрочитано 28.06.2024, 14:25
#17
Evleos


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


Я понял. Это в неком плане уловка))
Артикул нужно формировать по формуле.
Дверь условно ставится на каркас шириной 600 мм и артикул ххх-060, при этом фактический размер двери не 600 мм, а 591 мм
Таким образом выведенный размер укажет 591 а не нужное мне значение 600.
Можно пойти на еще одну уловки и сделать вспомогательную невидимую линию для растяжения, но проблема и с артикулом ХХХ-060 а не ХХХ-600.
Но идея интересная. Пробовал вставлять формулу в самые разные места с текстовым наполнением в результате либо выдается ошибка #### либо формула работает корректно, но при изменении блока формула требует обновление чертежа.
По сути можно перефразировать вопрос: как сделать так, что бы формулы в AutoCAD обновлялись при изменении блока а не при обновлении черетежа?

Последний раз редактировалось Evleos, 28.06.2024 в 14:49.
Evleos вне форума  
 
Автор темы   Непрочитано 28.06.2024, 14:35
#18
Evleos


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


Цитата:
Сообщение от Demonakor Посмотреть сообщение
Да я его не сохранял... Просто прикрепил 2 размера к вертикальной и к горизонтальной линиям внутри блока, отключил у них отображение линий, у вертикального размера сделал наклон текста 0,001 и перенёс числовые значения в свободное место (чтобы текст не перемещался при изменении размера).
По сути это уловка))
Но идея интересная. Однако данный способ напрямую не подойдет. Артикул придется делать формулой.
Поясню: Дверь монтируется на каркас шириной 600 мм, при этом сама дверь шириной 591 мм, однако именование артикула пишется как ХХХ-060-0Х0.
Можно было бы воспользоваться второй уловкой и сделать невидимую линию которая растягивается на расстояние в 600 мм, НО. Это НО в структуре артикула - не 600 а 060 (не 800 а 080).
В целом изначальный вариант решения с формулой работает, но работает только при обновлении чертежа. Может есть какой то способ обновить данные формулы без обновления данных чертежа?
Evleos вне форума  
 
Непрочитано 28.06.2024, 14:50
1 | 1 #19
Demonakor


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


В свойствах можно выставить округление размера до нужного значения (например с 591 и 600 подойдёт округление до 20, но можно сделать до 50 для соответствия другим размерам из блока).

PS: А чтобы было не 600, а 060 нужно 0 поставить текстом, а у размера выставить "масштаб линейных размеров" 0,1 (ну и соответственно округление 5).

PPS: Так если делать вспомогательную линию - её можно сделать и 60, а не 600. Там же всё параметрами выбора задаётся, так что можно любое число поставить без всяких округлений и масштабов.

Последний раз редактировалось Demonakor, 28.06.2024 в 15:05.
Demonakor вне форума  
 
Автор темы   Непрочитано 28.06.2024, 15:29
#20
Evleos


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


Цитата:
Сообщение от Demonakor Посмотреть сообщение
В свойствах можно выставить округление размера до нужного значения (например с 591 и 600 подойдёт округление до 20, но можно сделать до 50 для соответствия другим размерам из блока).

PS: А чтобы было не 600, а 060 нужно 0 поставить текстом, а у размера выставить "масштаб линейных размеров" 0,1 (ну и соответственно округление 5).

PPS: Так если делать вспомогательную линию - её можно сделать и 60, а не 600. Там же всё параметрами выбора задаётся, так что можно любое число поставить без всяких округлений и масштабов.
В целом согласен. Если очень извернутся это возможно))) но блин)) это такое извращение на самом деле. Эта версия будет как рабочий вариант.
Все же хочу найти ответ на вопрос возможно ли обновление формул в автокаде при изменении динамического блока, а не при обновлении чертежа. Потому что формулой написать артикул будет куда проще и быстрее. Однако имеется подозрения, что я много чего хочу, поэтому спасибо за помощь, пока что эта тема на паузе.
Если найду ответ напишу.
Evleos вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Динамические блоки > Автоматическое обновление атрибута в динамическом блоке



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Autolisp Acad2008 Каким образом заменить значение атрибута в динамическом блоке Zaghim LISP 12 14.03.2023 10:19
Значение атрибута, задающее угол для параметра вращения в динамическом блоке АлексЮстасу AutoCAD 34 15.11.2021 01:00
Правильный алгоритм вставки(создания) атрибута в динамическом блоке tigra-18 Динамические блоки 3 03.05.2018 13:35
Изменение значения атрибута в динамическом блоке mikmik Динамические блоки 12 19.05.2016 15:40
Как в динамическом блоке вставить значение из атрибута блока в значение параметрического размера(внутри блока)? swcats Динамические блоки 3 22.07.2011 08:50