Заполнение атрибутов блоков из excel autocad

Обновлено: 06.07.2024


Обновление данных атрибутов из CSV-файлов

Описание подпрограммы для импорта и экспорта данных между чертежом AutoCAD и электронной таблицей Excel.

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

В данной статье описан пример подобной подпрограммы. Она состоит из двух файлов (ATTRIBUTE-TABLE-UPDATE.LSP и ATTRIBUTE-TABLE-UPDATE.DCL), и позволяет экспортировать определенные блоки (в нашем случае - датчики пожарной сигнализации) вмести с их атрибутами и x-y координатами в файл в формате CSV (текстовый файл с данными разделенными запятыми), который удобен для открытия в Excel. Программа так же позволяет делать изменения в атрибутах и удалять вставленные в чертеже объекты, если они отсутствуют в CSV-файле.



Рис. 1. Предложение выбора
опции Export/Import.

Загрузите подпрограмму отсюда. Распакуйте и сохраните файл в папку Support которая находится в каталоге, куда установлен AutoCAD. Используя команду Load Application из меню Tools выберем файл ATTRIBUTE-TABLE-UPDATE.LSP и загрузи его.

Чтобы запустить подпрограмму, введите ATU в командной строке, после чего вы увидите контекстное меню с предположением выбрать опцию. Предлагается два варианта - Export (по умолчанию) и Import (рис. 1).

Если вы выберите Export, отобразиться диалоговое окно Results File у вас будет запрошен номер комнаты, в которой находятся интересующие нас датчики сигнализации (рис. 2). Укажем имя файла.



Рис. 2. Диалоговое окно Results File

Файл с результатами экспорта будет иметь расширение CSV, и его можно будет открыть в Notepad или Excel. На рисунке 3. показан файл, открытый в электронной таблицей Excel. Вы можете сделать изменения в столбце ADDRESS1, и удалить при необходимости одну или несколько строк, если соответствующие изменения должны быть сделаны и в чертеже.



Рис. 3. электронная таблица EXCEL.

После того как вы сделаете все изменения и сохраните файл опят в CSV-формате, вы можете опять запустить нашу подпрограмму в AutoCAD, набрав в командной строке ATU, только теперь выберите опцию Import в начальном запросе программы. Отобразиться диалоговое окно Import file, в котором вы должны будите выбрать CSV-файл, содержащий изменения которые вы хотите сделать в чертеже.



Рис. 4. Диалоговое окно Import File.

После того, как файл для импорта будет выбран, изменения в чертеже будут сделаны и отобразиться диалоговое окно Address Changes (Рис. 5). Нажмите на OK чтобы удалить диалоговое окно и проверьте чертеж, все ли изменения сделаны правильно. Обратите внимание на то, что вы можете отобразить диалоговое окно Address Changes в любое время в текущей сессии работы над чертежом набрав в командной строке (Show Changes).



Рис. 5. Диалоговое окно Address Changes.

Описание кода подпрограммы

После запуска моих стандартных функций для обработки ошибок и управления системными переменными, программа активизирует функцию ATT-DATA-OUT, которая определяет опции Export и Import, и вызывает функции GETBLKS, PRINT-OUT, и DO-IMPORT, в зависимости от того, что вы выбрали - экспорт или импорт CSV-файла.

GETBLKS создает список всех вставленных командой INSERT объектов, которые необходимо обработать. В нашем примере мы жестко указали имя блока "FA_DEVICE_INIT" (датчик пожарной сигнализации). Вы можете изменить его на имя блока, с которым вы собираетесь работать в двух операторах IF в коде, который показан ниже:

В нашем примере во второй и третьей строке установлены параметры для включения вставленных блоков. По логике программы это происходит, если имя блока больше чем 13 символов и первые 14 символов - FA_DEVICE_INIT. Вы можете изменить это для чтобы программа обрабатывала ваши блоки. В предпоследней строке показанного кода указывается, что необходимо рассматривать только те вставки блока, где точка вставки меньше чем 3,000" в направлении оси X. Вы так же можете изменить это в соответствии с вашими критериями.

Следующая функция, PRINT-OUT, ссылается на несколько специфических атрибутов - ADDRESS1 и DEVICE_LOCATION - вы можете изменить их на ваши атрибуты блока в сегменте кода функции PRINT-OUT, который показан ниже:

Функция DO-IMPORT открывает предназначенный для импорта CSV-файл и вызывает функцию DO-ADDRESS для построчного чтения этого файла, возвращает она список точек вставки блоков и список изменений для отображения в диалоговом окне Address Changes. Если вы хотите настроить эту часть кода для своих нужд, вы должны придерживаться структуры CSV-файла как показано на рис. 3, с учетом следующих критериев:

  • Первое поле - это значение атрибута, которое можно изменять (ADDRESS1 в этой программе).
  • Второе поле - это имя вставляемого блока.
  • Третье поле - значение второго атрибута, эквивалентное DEVICE_LOCATION.
  • Четвертое поле - номер комнаты.
  • Последние два поля - координаты X и Y точки вставки блока.

Имена атрибутов, упомянутые выше, также присутствуют в последних двух описанных функциях и должны быть изменены соответственно при необходимости.

лично я не люблю лазить в другие приложения, работая в автокаде, но эксель, черт, классная штука.
а вообще, все данные, которые проектировщик использует в работе, должны хранится в автокаде.
что уметь:
. у меня есть таблица экспликации помещений в автокаде (номера, названия помещний, площади).
Всего около 80 помещений на этаже ( 6 этажей).
Какими способами можно перетащить эту таблицу в эксель - сделать таблицу для воздухообмена воздухообмена помещений.
А то в ручную долго ( около 3-4 часов).

Да и зачем тащить в эксель. "Три кита ОВшника" 1. расчет теплопотерь 2. расчет теплопритоков 3. расчет воздухообмена - в одном флаконе.


ssn



Просмотр профиля

проектировщик ТМ (фриланс)

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


v-david



Просмотр профиля очень сложно будет сделать в автокаде то же, что можно в экселе, пусть даже с атрибутами. В экселе связи "живые", т.е обновляются почти без Вашего участия. Кроме того они программно управляемы (не знаю как в автокаде, я в нем не спец, может быть тоже). Рассчитав элемент сети и связав его с расчетом сети получаешь динамически изменяемую систему. Некая примитивная модель, но зато простая, прозрачная и главное доступная неквалифицированному пользователю. Последнее все более актуально. Мое мнение (далеко не бесспорное) не стоит делать из автокада расчетную программу хотя бы потому, что на смену подобным усилиям (и в каде и в экселе) должны придти серьезные программы. Но пока по-бедности вот так. Никого не обидел?


ssn



Просмотр профиля

проектировщик ТМ (фриланс)

дак а про расчетную вроде как речи нет. хотят базу хранения информации сделать.


shprot



Просмотр профиля
Поддерживаю. Расчетная часть должна быть безусловно в Excel (или в чем то другом) а в AutoCAD только блоки с итогами вычислений (воздухообмены, нагрузки на системы тепло или холодоснабжения, отопления и т.д.) а между ними просто инструмент позволяющий делать синхронизацию. После того как все расчеты сделаны в Excel, пользователь открывает чертеж AutoCAD, в программе Excel нажимает кнопку "Обновить данные". Так мне по крайней мере видеться работа с воздухообменами, аналогичным образом может все быть организовано и с другими расчетами.


glam



Просмотр профиля

сферический инженер-кун в вакууме

Вообще моя "мечта идиота", чтобы вся инфа хранилась в чертеже. ЧТО. ГДЕ. КОГДА. А то через пол года открываешь проект. ЧТО? ГДЕ? КОГДА?

Если ты через полгода не можешь вспомнить хода выполнения и логики своего проекта, то приложение в котором ты его будешь делать вообще никакой роли играть не будет. Логика твоих действий должна зависеть не от приложений, а от тебя самого. У меня, как и у многих других коллег, которым свойственно стремление к порядку, для всех проектов сложилась определенная структура папок, она почти не модифицицировалась со временем. Всегда в моей корневой папке для каждого проекта есть поддиректория Расчеты и поддиректория Оборудование, есть и другие, но знакомыми являются именно эти две. В расчетах хранится всегда только актуальная версия последнего состояния объекта, т.е. именно то что пошло в работу, а не какие-то промежуточные этапы. Промежуточные этапы, как показывает практика, никакого смысла хранить нет, ровно как и промежуточные этапы графической части. Проект всегда развивается только в 1 направлении и ни разу не было чтобы изменения откатывались обратно. Если я сохранял промежуточные результаты, то они всегда шли в своеобразный архив и им присваивались номера ревизий. Но, как я уже сказал, никогда не возникало надобности возвращаться к этим архивным данным, так что в последнее время я не храню подобные предыдущие версии расчетов или графики, если только они не носят резервный характер из соображений безопасности.
Кстати, на моей текущей работе логика хранения проектов организована очень похожим образом с поправкой на то что у каждого проекта гораздо больше директорий, но при этом директории всех смежных разделов имеют строго одинаковую иерархию, поэтому даже если кому-то из не гипов понадобится залезть в папку к электрикам или вкшникам, то мы всегда найдем их расчеты, подбор оборудования, графическую часть и т.п.


shprot

Определение атрибута блоков в автокад

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

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

autocad-block-defenition-rus

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

Блок с атрибутами в автокаде. Свойства блока

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

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

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

Редактор атрибутов блока Автокад

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

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

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

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

autocad-block-editor-new-attribute-defenition

autocad-add-attribute-to-block-rus

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

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

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

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

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

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

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

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

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

alt

Мы рассмотрели, как сделать блок в Автокаде, научились создавать собственные библиотеки блоков и поняли важность использования данных элементов в чертежах. Теперь разберёмся, для чего нужны атрибуты блока в AutoCAD.

Атрибуты блока в Автокаде. Особенности

Атрибуты блоков в Автокаде представляют собой текстовое описание, которое связывается с конкретным блоком. Рассмотрим пример. Допустим, можно создать блок «Плитка». Давайте посмотрим, какую информацию может содержать такой объект (см. рис. 1): размер, цвет, материал, производитель, страна изготовитель и еще многое др.

Атрибуты блока в AutoCAD

Рис.1. Информация об объекте AutoCAD "Плитка".

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

Создаем атрибуты для блоков AutoCAD

Создание атрибутов блоков в Автокаде происходит в несколько этапов.

  1. Используя стандартные примитивы, создадим несколько графических объектов «Плитка», которые в дальнейшем преобразуем в блок.
  2. Перейдем во вкладку «Вставка».
  3. В панели «Определение блока» выбираем команду «Задание атрибута».

Команда в Автокаде «Задание атрибутов»

Рис.2. Создание атрибутов блока в Автокаде.

  • В появившемся диалоговом окне нужно задать такие параметры, как «Тэг» - имя атрибута, которое должно отображать суть его вхождения. Допустим, «ЦВЕТ».
  • В поле «Подсказка» нужно ввести текст, по которому будет ясно, какое значение следует указывать. Введем «Укажите цвет плитки».
  • Поле «По умолчанию» должно содержать значение, которое присваивается атрибуту.
  • Для первой плитки логично указать «желто-зеленый», но пока оставим это поле пустым, чтобы данный атрибут можно было присвоить и др. блокам.
  • При необходимости задайте параметры текста: высоту, стиль, угол поворота и т.п.

При наведении курсора мыши на режимы, появляются подсказки. В них можно прочитать, что обозначает тот или иной режим. Выберем «Скрытый» и «Фиксированное положение». Нажмем «ОК». Точку вставки атрибута укажем на экране возле самого объекта.

Рис.3. Определение атрибута в Автокаде.

По аналогии создадим еще несколько атрибутов. К примеру, «РАЗМЕР», «ПЛОЩАДЬ», «МАТЕРИАЛ».

Атрибуты блоков в Автокаде

Рис. 4. Различные атрибуты блока в AutoCAD.

Теперь осталось создать сам блок. Выбираем команду «Создать блок» в AutoCAD, указываем имя, базовую точку. Указываем атрибуты (см. рис.5).

Определение блока в Автокаде

Рис.5. Создание атрибутов блока в Автокаде.

Нажимаем «Ок». Появляется диалоговое окно «Редактирование атрибута», где нужно ввести все характеристики нашей плитки.

Рис.6. Редактирование атрибутов AutoCAD.

После нажатия «Ок» создается блок, который содержит текстовую информацию. Как ее извлекать и как с ней работать, рассмотрим в следующей статье. Обязательно попробуйте создать собственный блок и присвоить ему атрибуты.

Динамические блоки с атрибутами AutoCAD

Про создание атрибутов в динамическом блоке Автокада можно узнать в видеоуроке на моем канале YouTube. В нём рассмотрено, как взаимодействуют блоки, атрибуты и извлечение данных. Поэтому обязательно ознакомьтесь с этим материалом (см. видео "Динамические блоки, атрибуты и извлечение данных в AutoCAD").

Читайте также: