Не работают атрибуты блока

Содержание
  1. При вставке блока теряются атрибуты
  2. Сообщения 5
  3. #1 Тема от Andrey 23 ноября 2006г. 15:29:05
  4. Тема: При вставке блока теряются атрибуты
  5. #2 Ответ от Александр Ривилис 23 ноября 2006г. 16:24:12
  6. Re: При вставке блока теряются атрибуты
  7. #3 Ответ от Александр Ривилис 23 ноября 2006г. 16:30:40
  8. Re: При вставке блока теряются атрибуты
  9. #4 Ответ от oktilon 26 сентября 2012г. 21:52:09
  10. Re: При вставке блока теряются атрибуты
  11. #5 Ответ от ilnur 23 октября 2013г. 23:21:17
  12. Re: При вставке блока теряются атрибуты
  13. Не обновляются поля, являющиеся ссылками на атрибуты блока. Как исправить?
  14. Обновить атрибуты блока
  15. При вставке блока теряются атрибуты
  16. Сообщения 5
  17. #1 Тема от Andrey 23 ноября 2006г. 15:29:05
  18. Тема: При вставке блока теряются атрибуты
  19. #2 Ответ от Александр Ривилис 23 ноября 2006г. 16:24:12
  20. Re: При вставке блока теряются атрибуты
  21. #3 Ответ от Александр Ривилис 23 ноября 2006г. 16:30:40
  22. Re: При вставке блока теряются атрибуты
  23. #4 Ответ от oktilon 26 сентября 2012г. 21:52:09
  24. Re: При вставке блока теряются атрибуты
  25. #5 Ответ от ilnur 23 октября 2013г. 23:21:17
  26. Re: При вставке блока теряются атрибуты
  27. CadSupport
  28. атрибуты блока, Autocad
  29. Создание атрибута блока
  30. Как редактировать блок с атрибутами
  31. Добавление атрибутов к существующему блоку
  32. Атрибуты блока автокад, синхронизация — команда _battman
  33. Dataextraction — получаем таблицу с данными из блока.
  34. Ссылки на другие материалы:
  35. 19 комментариев

При вставке блока теряются атрибуты

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщения 5

#1 Тема от Andrey 23 ноября 2006г. 15:29:05

  • Andrey
  • Восстановленный участник
  • На форуме с 23 октября 2006г.
  • Сообщений: 5
  • Спасибо: 0

Тема: При вставке блока теряются атрибуты

Привет, коллеги! Помогите разобраться в чем может быть дело.
В некоем файле есть блок, в котором задан атрибут с тагом
«LIST_NUMBER». При вставке этого блока в текущий документ, этот аттрибут пропадает. Вот код:

#2 Ответ от Александр Ривилис 23 ноября 2006г. 16:24:12

  • Александр Ривилис
  • Активный участник
  • Откуда: Украина / Киев
  • На форуме с 15 апреля 2005г.
  • Сообщений: 8,648
  • Спасибо: 151

Re: При вставке блока теряются атрибуты

Набор функций от Tony Tanzillo:

#3 Ответ от Александр Ривилис 23 ноября 2006г. 16:30:40

  • Александр Ривилис
  • Активный участник
  • Откуда: Украина / Киев
  • На форуме с 15 апреля 2005г.
  • Сообщений: 8,648
  • Спасибо: 151

Re: При вставке блока теряются атрибуты

P.S.: Чтобы было понятно создание вставки блока (BlockReference) не приводит к автоматическому созданию атрибутов (AttribAttributeReference) в отличие от команды AutoCAD INSERT. Поэтому атрибуты нужно создать программно, при помощи функции InsertBlockAttibuteRef или аналогично ей.

#4 Ответ от oktilon 26 сентября 2012г. 21:52:09

  • oktilon
  • Участник
  • На форуме с 26 сентября 2012г.
  • Сообщений: 1
  • Спасибо: 0

Re: При вставке блока теряются атрибуты

При вставке блока с атрибутами с помощью указанных выше функций вставка происходит хорошо, но параметры у вставленных атрибутов все нулевые (точка вставки, высота текста, ширина текста и т.д.) и их не видно совсем (но в редакторе аттрибутов они видны)

Программирую для AutoCAD 2005 на C# в SharpDevelop 2.2.1 (.NET 1.1)

Данный кусок кода должен заменять рамку(штамп) старого формата, на новую, из внешнего файла, который весь целиком нужно преобразовать в блок.
Фунция FillAttribute(ref att) — подставляет значения в att.TextString в зависимости от att.Tаg
из параметров класса

#5 Ответ от ilnur 23 октября 2013г. 23:21:17

  • ilnur
  • Участник
  • На форуме с 23 октября 2013г.
  • Сообщений: 1
  • Спасибо: 0

Re: При вставке блока теряются атрибуты

Здравствйте уважаемые формумчане. Помогите пожалуйста мне с одним вопросом.
Есть код на С# вставки блока. Принцип работы такой. При наборе команды проверяется наличие блока в чертеже, если нет то, просит файл с блоками и копирует его блоки в текущий чертеж. При повторном выполнении команды блок есть в базе и создается на его основе (создается его екземпляр) и всавляется в чертеж. Однако если очистить чертеж т.е. сделать purge, повторно загрузить блоки из файла, то при вставке блока в чертеж выдает ошибку о том, что объект удален, хотя он есть в чертеже. Возникает такое ошущение что база чертежа не обновилась после purge и копировании блоков из другово чертежа и использует старую базу до удаления. В чем может быть ошибка? Устал уже голову ломать, а проблема требет решения.

Читайте также:  Связыватель кристаллов не работает

Источник

Не обновляются поля, являющиеся ссылками на атрибуты блока. Как исправить?

Добрый день, форумчане.
Заранее извиняюсь, если проблема уже рассматривалась, но в поиске не смог найти, открывает темы с несколько другими проблемами.
Итак, суть: есть блок, в котором есть атрибуты, которые установлены по умолчанию и контролируются при вхождении блока, т.е. могут меняться в самом чертеже. Пример: атрибут «НОМЕР», являющийся порядковым номером блока. По умолчанию при вхождении 1, потом на самом чертеже я его уже меняю на нужный.
Также в блоке есть текст (МТЕКСТ) вида:
ПОЛЕ_НОМЕР — порядковый номер блока,
где ПОЛЕ_НОМЕР — это собственно поле, где объект – атрибут НОМЕР, свойство – значение.
Так вот проблема в том, что при вхождении блока в тексте все поля, ссылающиеся на атрибут блока, принимают значение по умолчанию (или —- , если по умолчанию ничего не стоит) и при изменении атрибута не меняют своё значение (например, меняю НОМЕР с 1, которое по умолчанию, на 5, – поле остаётся 1).
Естественно, после изменения атрибута регенерирую чертёж, обновляю поля командами и т.д. – ничего не помогает.
FIELDEVAL стоит 31, как и по умолчанию, ничего не менял. Не знаю, какие ещё параметры могут на это влиять.

На официальном форуме нашёл топик:
https://forums.autodesk.com/t5/autoc. g/td-p/3609834
Там вроде человек заменил МТЕКСТ на обычный ТЕКСТ или ДТЕКСТ и в нём вставил поле и якобы заработало. Но там я заметил, что поле ссылается не на Атрибут, а на его вхождение уже в самом чертеже. При создании поля я такого варианта не увидел, поэтому в моём чертеже воссоздать не могу.

Прикладываю файл с блоком, где вставил поля в трёх вариантах: в МТЕКСТ, в ТЕКСТ и просто отдельными новыми атрибутами, которые используют ссылку на старые.
Часа три уже мучаюсь, ничего не помогает. Работаю в AutoCad 2017, попробовал в 2016-ом –*то же самое.

Источник

Обновить атрибуты блока

Страница 1 из 2 1 2 >

День добрый, проблема такая и происходит не первый раз:

Не могу изменить артибу блока. Переместить в новое место. Добавить новый атрибут. Сейчас используемом блоке усиления проёмов, понадобился ещё один атрибут. Сумарная блина. В новых блоках он появляется в старых нет.

Есть ли лекарство?

14.10.2009, 11:58 1 | #2

14.10.2009, 13:38 #3

Прочёл.. Там мараль басни как я понял: «Аутодеск хотел как лудше а вышло как всегда, и они дали нам инструмент Обновления атрибутов по аналогу.»

Т.е. Добавив новый атрибут в блок через редактор блока. Я его вставляю в чертёж и давлю, — синхронизировать.

Все атрибуты приобретают свойства моего блока. После одновления «полей», все «поля» становятся правельными, но текстовые атрибуты утеряны навсегда..

Я правельно понял?

Может быть есть возможность (лисп) пройтись по всему чертежу перепесать данные атрибутов) а потом вписать обратно после синхронизации?

П.с.У меня конечно блоков не тысячи но скоро будут сотни. Хочется сначала подумать..

Источник

При вставке блока теряются атрибуты

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщения 5

#1 Тема от Andrey 23 ноября 2006г. 15:29:05

  • Andrey
  • Восстановленный участник
  • На форуме с 23 октября 2006г.
  • Сообщений: 5
  • Спасибо: 0

Тема: При вставке блока теряются атрибуты

Привет, коллеги! Помогите разобраться в чем может быть дело.
В некоем файле есть блок, в котором задан атрибут с тагом
«LIST_NUMBER». При вставке этого блока в текущий документ, этот аттрибут пропадает. Вот код:

#2 Ответ от Александр Ривилис 23 ноября 2006г. 16:24:12

  • Александр Ривилис
  • Активный участник
  • Откуда: Украина / Киев
  • На форуме с 15 апреля 2005г.
  • Сообщений: 8,648
  • Спасибо: 151

Re: При вставке блока теряются атрибуты

Набор функций от Tony Tanzillo:

Читайте также:  Партнерская ссылка не работает

#3 Ответ от Александр Ривилис 23 ноября 2006г. 16:30:40

  • Александр Ривилис
  • Активный участник
  • Откуда: Украина / Киев
  • На форуме с 15 апреля 2005г.
  • Сообщений: 8,648
  • Спасибо: 151

Re: При вставке блока теряются атрибуты

P.S.: Чтобы было понятно создание вставки блока (BlockReference) не приводит к автоматическому созданию атрибутов (AttribAttributeReference) в отличие от команды AutoCAD INSERT. Поэтому атрибуты нужно создать программно, при помощи функции InsertBlockAttibuteRef или аналогично ей.

#4 Ответ от oktilon 26 сентября 2012г. 21:52:09

  • oktilon
  • Участник
  • На форуме с 26 сентября 2012г.
  • Сообщений: 1
  • Спасибо: 0

Re: При вставке блока теряются атрибуты

При вставке блока с атрибутами с помощью указанных выше функций вставка происходит хорошо, но параметры у вставленных атрибутов все нулевые (точка вставки, высота текста, ширина текста и т.д.) и их не видно совсем (но в редакторе аттрибутов они видны)

Программирую для AutoCAD 2005 на C# в SharpDevelop 2.2.1 (.NET 1.1)

Данный кусок кода должен заменять рамку(штамп) старого формата, на новую, из внешнего файла, который весь целиком нужно преобразовать в блок.
Фунция FillAttribute(ref att) — подставляет значения в att.TextString в зависимости от att.Tаg
из параметров класса

#5 Ответ от ilnur 23 октября 2013г. 23:21:17

  • ilnur
  • Участник
  • На форуме с 23 октября 2013г.
  • Сообщений: 1
  • Спасибо: 0

Re: При вставке блока теряются атрибуты

Здравствйте уважаемые формумчане. Помогите пожалуйста мне с одним вопросом.
Есть код на С# вставки блока. Принцип работы такой. При наборе команды проверяется наличие блока в чертеже, если нет то, просит файл с блоками и копирует его блоки в текущий чертеж. При повторном выполнении команды блок есть в базе и создается на его основе (создается его екземпляр) и всавляется в чертеж. Однако если очистить чертеж т.е. сделать purge, повторно загрузить блоки из файла, то при вставке блока в чертеж выдает ошибку о том, что объект удален, хотя он есть в чертеже. Возникает такое ошущение что база чертежа не обновилась после purge и копировании блоков из другово чертежа и использует старую базу до удаления. В чем может быть ошибка? Устал уже голову ломать, а проблема требет решения.

Источник

CadSupport

Все о BIM, CAD, ERP

атрибуты блока, Autocad

Атрибуты блока в автокаде — это текстовые переменный которые мы добавляем в блок для того чтобы хранить или выводить дополнительную информацию. Это удобно например для создания автоматических спецификаций, когда блок хранит в себе параметры реального объекта — название, наименование, производителя, комментарий, код, маркировку на чертеже, мощность и т.п.

Чтобы правильно пользоваться атрибутами необходимо понимать одну не очевидную особенность реализации этого инструмента в Автокаде. Сам блок это некоторая инструкция которая хранится в библиотечной части файла, и не видна на чертежах. А то что мы видим на чертеже это ссылка на блок — у ссылки упрощённо говоря есть четыре параметра — координаты, и название блока. Автокад видя объект ссылка на блок — берет инструкцию из библиотеки и отрисовывает экземпляр блока в указанном месте.

При чем здесь атрибуты? Атрибуты это параметры которые мы задаем в описании блока, но их значения живут только во вхождении на черетеже. Сделав это отступление перейдем к практической части.

Создание атрибута блока

Добавить атрибут можно разными способами, самый универсальный командой: _attdef либо в меню: Рисование/Блок/Определение атрибутов она вызывает панель определения атрибута, где можно настроить все параметры определения. Пока добавим Тэг — имя атрибута, пусть будет NUM. Жмем окей, вставляем атрибут на чертеж.

Получаем вот такой объект — Определение атрибута

Как видим в его свойствах мы можем настроить все параметры которые видели при создании блока. Впрочем в модели атрибут — бесполезен. Поэтому создадим блок test с атрибутом — num, для большей наглядности включим в наш блок еще и геометрический элемент — окружность, назовём блок — Test:

Нажимаем окей. Появляется дополнительное окно, где нас просят ввести значения атрибутов, введем — 1.

В результате получаем вхождение блока вида:

Читайте также:  Не работает кнопка сброса суточного пробега ваз 2114

Во первых, обратим внимание — атрибут num вроде бы как исчез, вместо него во вхождении блока отображается «1». Но, если посмотрим в свойства блока, то увидим там новую вкладку — атрибуты. И новый параметр, уже знакомый нам — NUM, со значением «1». Собственно это значение мы можем редактировать, выводя вместо единицы любое сообщение.

Теперь решим еще две задачи:

Как редактировать блок с атрибутами

Что если мы хотим добавить еще атрибуты к блоку? И что если значения этих атрибутов нам нужно выводить только в спецификацию, а на чертеже они в общем и ни к чему, будут только мешать. Для этого перейдем в редактор блока.Тут нас ожидает небольшой сюрприз, если просто дважды кликнуть по блоку с атрибутами открывается не редактор блока, а редактор атрибутов блока.

Чтобы всё таки отредактировать блок жмем ПКМ(правая клавиша мыши) и в контекстном меню выбираем редактор блоков.

Этот момент так же надо учитывать при работе с такими блоками.

Добавление атрибутов к существующему блоку

В редакторе блоков копируем атрибут (если он есть, если нет, смотри выше как его создать), и меняем в свойствах копии — Тег на COMMENT, Скрытый — Да, можно добавить Подсказку и значение по умолчанию.

Закрываем редактор блока, сохраняем изменения. Логично было бы предположить что у блока появится новое свойство — комментарий, и он будет скрытым, т.е. на чертеже отображаться не будет. Однако по факту нового свойства не появилось. В чем дело?

Атрибуты блока автокад, синхронизация — команда _battman

Особенность архитектуры Автокада — определения блоков хранятся отдельно от их вхождений на чертеже. По скольку атрибут — параметрический элемент зависящий не столько от описания блока, сколько от значений во вхождении блока, то требуется дополнительная синхронизация чтобы перерисовать все атрибуты во всех вхождениях блоков. Так же нужно понимать, что все индивидуальные параметры атрибутов кроме самого значения будут сброшены (координаты, размеры текста, повороты, шрифты).

Для этого в Автокаде есть специальная команда — _battman, (набирать её нужно именно так, поскольку на русский её до последних версий автокада так и не перевели, в 2016 её можно вызвать также с помощью команды ДИСПАТБЛК).

С её помощью открывается так называемый диспетчер атрибутов, в нем сначала жмем кнопку — выбрать блок. Выбираем наш блок. И видим что в диспетчере наш новый атрибут появился. Жмем кнопку обновить. И потом ОК.

Снова смотрим в свойства блока:


Теперь у нашего блока появился новый атрибут — комментарий.

Аналогичным образом мы можем добавлять новые атрибуты к блокам.

  • Редактируем блок в редакторе
  • Синхронизируем вхождения блоков на чертеже с помощью команды _battman

Dataextraction — получаем таблицу с данными из блока.

Один из вариантов использования атрибутов — создание спецификаций и подсчет вхождений блоков на чертеже. С версии 2011 в автокаде есть инструмент — dataextraction. Он позволяет получить таблицу в виде таблицы в автокаде, либо в виде .csv файла, который можно открыть в Excel.

Однако, настройка dataextraction процесс далеко не тривиальный. В качестве альтернативы можно использовать специализированные решения, например — автоматическую спецификацию автокад.

Ссылки на другие материалы:

  • Возможно так же вам будет интересна тема применения полей в автокаде.
  • А тут можно найти интересный скрипт который позволяет перемещать атрибуты блока у группы блоков.
  • Выравнивание в Автокаде
  • Растягивание в автокаде
  • Аннотативность в автокаде

19 комментариев

Спасибо. Сначала запутался, но потом сделал.
В AutoCAD Electrical 2016 команду перевели как ДИСПАТБЛК — диспетчер атрибутов блока.

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

Спасибо Вам большое за автоматическую спецификацию которую Вы мне прислали по почте. Все работает. Перевел свои атрибуты блоков под эту программу и теперь легко и быстро получаю спецификацию. Сейчас дорабатываю остальные блоки. Вы мне очень сберегли время, нервы, а главное зрение. Дай Аллах вам здоровья. Привет всем из Казахстана.

Пожалуйста!
Успехов в профессиональной деятельности! Для этого и делали )

Источник

Оцените статью