Управление автокад из эксель
Вот и пришло время поделиться с вами моей наработкой CAD_EX. Это файл Microsoft Excel с макросами, который позволяет связать воедино электронную таблицу и чертеж Autodesk AutoCAD.
Реальный проект
Для наглядности продемонстрирую как все это работает на реальном проекте.
Примеры использования
В следующем видео я хочу рассказать о примерах применения этого макроса для выполнения разных задач проектирования. Безусловно, область применения данного инструмента гораздо шире.
Первые шаги
29 комментариев:
День добрый. Отличный инструмент.
В начале третьего видео говорится о привязке автокада к экселу через визуалбейсик. Но в рассмотренном примере, автокад 2017 уже есть в списке по умолчанию, и в обычном экселе данная галочка стоит по умолчанию. А как привязать макрос к нестандартному автокаду, которого нет в списке ссылок? Это как-то можно сделать через указание библиотеки вручную, но какой файл для этого необходимо выбрать? (AutoCAD Electrical 2019 вер. 16.0.49.0)
Здравствуйте!
Вам необходимо снять галочку с 17 версии Автокада, ещё раз внимательно просмотреть в Reference все доступные программы (в видео это показано) должно быть что-то вроде AutoCAD 2019 type library и поставьте на него галочку
Доброго времени суток! А можно ли с помощью Вашей утилиты сделать так, что бы, меняя значение в ексель, менялся размер блока? Заранее спасибо
Здравствуйте!
Да, можно. В доступной для скачивания версии CAD_EX есть возможность управления одним параметром, если запараметризиравать размеры блока в Lookup параметре, вы сможете менять размеры блока. В новой версии макроса будет возможность обработки неограниченного количества параметров.
Добрый день, никак не могу запустить. Помогите разобраться. type library подключил.
Автокад запущен нужный файл открыт
При попытке запустить "SELECT_ON_SCREEN" выходит "ошибка out of memory" на строке
If acadApp Is Nothing Then
Set acadApp = New AcadApplication
>>вот здесь стоп>> acadApp.Visible = True
End If
я так понял что перед этим не прошел проверку на открыт автокад или нет.
В чем может быть причина?
Не работает только эта функция?
У вас один Автокад установлен?
Не работают все функции, остановка по скрипту в аналогичных местах. Установлен параллельно BrycsСad 19 (Autocad 18). Проверил на другой машине - аналогичная ситуация, но там стоят Autocad 2019 LT и Нанокад (бесплатная версия).
Добрый день) у вас в видео обновление данных довольно оперативно проходит. Я Попробовал прогнать на 100 блоков обновление данных - у меня очень долго обновляется информация. Можно ли как-то ускорить это процесс, или я где-то поменять настройки?
Добрый день!
Все зависит от количества атрибутов в блоке, чем их больше, тем соответсвенно дольше происходит обновление
Я инженер-проектировщик ОВиК, не программист. И не хочу, да и некогда, вникать в серьезное программирование. Чаще всего появляется ситуация, что нужно как-то автоматизировать рутину здесь и сейчас. На помощь приходит простой язык VBA.
Далее я покажу, как можно без особых забот сделать самому то, за что серьезные ребята берут не плохие денежки. А именно перенос данных из Excel в AutoCAD и обратно. Заинтересованных прошу под кат.
Программировать будем на стороне Excel — мне так проще. Для подключения нужно войти в режим разработчика: Alt+F8 Либо можно открыть вкладку «разработчик» из настроек ленты.
В окне разработчика VBA входим в верхнее меню: Tools/References. В этом окне нужно поставить галочку на вашей версии AutoCAD
В моем случае это AutoCAD 2014 Type Library. Далее нужно в левом окне создать в вашей книге модуль, как на скриншоте (Module)
И в модуль вставляем нижеприведенный код:
Аналогичным способом можно создавать блоки с атрибутами, в которые можно вставлять текст из ячеек.
Нужно внести в верхний код изменения вроде:
Код обновления текста по хэндлу — написан ниже: 'получаем хэндл из ячейки, в которую мы записали кодом выше.
entHandle = ActiveCell.Offset(0, 3).Value 'получили наш блок по хэндлу
Set blockObj = acadDoc.HandleToObject(entHandle)
А дальше делаем всё то же самое, что и выше.
Для того, чтобы немного разъяснить как это работает вживую — записал видео:
Как видите, кода минимум, однако на больших объектах мне экономит по несколько часов работы. И снижается риск ошибки. Т.к. обычно это выглядит следующим образом у проектировщиков — открываются два окна на разных экранах, и или вручную, или через буфер обмена начинается заполнение выносок или блоков на чертеже.
Опять же чем хорош VBA — что он всегда под рукой :) Excel-то основной инструмент у инженера.
Экспорт таблиц Excel в таблицы AutoCAD, nanoCAD (версии 10 и выше), ZWCAD (не Classic) и обратно.
Предусмотрен экспорт в новую или существующую таблицу AutoCAD. При предварительном выборе таблицы AutoCAD целиком экспорт происходит в существующую таблицу с добавлением новых строк и столбцов. При выборе диапазона ячеек в таблице AutoCAD экспорт и импорт ведутся с начала выделенного диапазона. Также присутствует возможность импорта таблиц, состоящих из примитивов (разбитых на отрезки, полилинии и текст). После импорта из AutoCAD таблицу Excel можно очистить от кодов форматирования многострочного текста. Все процессы выполняются в реальном времени между открытыми окнами AutoCAD и Excel.
Установка производится через .bat-файл. Перед установкой Excel должен быть закрыт. При установке есть выбор набора команд контекстного меню для правой кнопки мыши. Если установка через .bat-файл не работает, можно установить надстройку вручную (Параметры > Надстройки > Управление (внизу окна) > Надстройки Excel > Перейти. > Обзор. > указать необходимый файл)
Команды в панель быстрого доступа (вверху) добавляются вручную (Параметры > Панель быстрого доступа > Выбрать команды из: (вверху окна) > Вкладка "Экспорт/импорт в AutoCAD" > Добавить).
Внимание. Во избежание потери данных вследствие фатальных ошибок nanoCAD и ZWCAD рекомендуется сохранять чертеж перед выполнением каких-либо действий.
- при экспорте в AutoCAD и nanoCAD новой таблицы экспортируются ширина и высота ячеек из Excel с округлением до 1 мм;
- при импорте таблицы из AutoCAD и nanoCAD на пустой лист Excel выдается запрос на импорт размеров ячеек;
- добавлена возможность создания связи таблицы nanoCAD и Excel (для AutoCAD, к сожалению, средствами VBA реализовать невозможно);
- улучшены алгоритмы разбивки объединенных ячеек и добавления строк и столбцов при экспорте в готовую таблицу.
- в nanoCAD исправлена ошибка при добавлении строк к существующей таблице;
- в nanoCAD исправлена функция отмены при экспорте;
- добавлена версия для ZWCAD.
- при импорте в Excel восстанавливаются предыдущие параметры вычислений в книге. Ранее всегда устанавливались на "Автоматически";
- в nanoCAD исправлена ошибка, при которой в существующую таблицу иногда не добавлялись новые столбцы, если не добавлять строки;
- в nanoCAD при экспорте и импорте таблицы .dwg, а также таблиц из примитивов размеры ячеек корректируются в соответствии с масштабом отображения объектов. Размер текста в таблице .dwg устанавливается согласно стилю таблицы либо вручную;
- в nanoCAD при создании связи таблицы nanoCAD и Excel связываемый диапазон теперь назначается по выделенным ячейкам на листе Excel. При выделении всех ячеек листа Excel создается связь со всем листом (без указания диапазона ячеек).
- при импорте в Excel перед значением ячейки будет добавлен служебный символ апострофа ('), если в ячейку импортируется значение, начинающееся с апострофа, или неприемлемое значение (например, формула с неверным десятичным разделителем), или значение, автоматически форматируемое в дату. В последних двух случаях апостроф будет добавлен, если формат ячейки не является текстовым. Служебный символ апострофа виден только в строке формул и не отображается на листе и при печати.
- при импорте в Excel исправлена ошибка при очистке объединенных ячеек.
- только при экспорте из Excel в AutoCAD добавлен автоповорот текста, если текст в ячейке Excel повернут на 90 градусов;
- добавлен поиск открытого окна AutoCAD при нескольких установленных версиях AutoCAD.
- в nanoCAD возникает ФАТАЛЬНАЯ ОШИБКА. в случае удаления ячеек смешанного типа (текст + блок), созданных или измененных при ранее проведенном экспорте в таблицу .dwg. Не экспортируйте данные в таблицу .dwg с ячейками смешанного типа;
- в nanoCAD неправильно работает метод добавления строк с наследованием свойств (InsertRowsAndInherit), в котором при добавлении строк к существующей таблице .dwg тип ячейки устанавливается как смешанный (текст + пустой блок) и создаются проблемы при последующей работе с таблицей. Метод заменен на InsertRows при котором в nanoCAD так же наследуются свойства последней строки таблицы;
- в nanoCAD периодически возникает ошибка, при которой в существующую таблицу не добавляются новые столбцы, если не добавлять строки. Ошибка потенциально исправлена добавлением дополнительных строк перед добавлением столбцов с последующим возвратом количества строк к исходному состоянию;
- в nanoCAD не работает экспорт в выделенную область таблицы .dwg (свойство HasSubSelection всегда False). Потенциально оставлена такая возможность, если это исправят в новых версиях nanoCAD;
- в nanoCAD при обновлении связи неверно устанавливаются размеры ячеек (не соответствуют размерам в режиме "Разметка страницы" в Excel). Чтобы сохранить ширину столбцов таблицы nanoCAD необходимо через редактор таблицы сохранить данную таблицу в файл .xls, скопировать из него столбцы и вставить их ширину на нужный лист (Специальная вставка > Ширины столбцов);
- в ZWCAD при экспорте таблица не обновляется самостоятельно. Для обновления таблицы необходимо совершить движение мыши в области окна программы;
- в ZWCAD при экспорте возможно зависание Excel. Если это произошло, следует удалить незавершенную таблицу, сохранить чертеж и перезапустить ZWCAD;
- при импорте таблиц из примитивов наличие среди примитивов блоков существенно замедляет процесс. Разбивайте ненужные блоки при импорте примитивов.
Экспорт таблиц Excel в таблицы AutoCAD, nanoCAD (версии 10 и выше), ZWCAD (не Classic) и обратно.
Предусмотрен экспорт в новую или существующую таблицу AutoCAD. При предварительном выборе таблицы AutoCAD целиком экспорт происходит в существующую таблицу с добавлением новых строк и столбцов. При выборе диапазона ячеек в таблице AutoCAD экспорт и импорт ведутся с начала выделенного диапазона. Также присутствует возможность импорта таблиц, состоящих из примитивов (разбитых на отрезки, полилинии и текст). После импорта из AutoCAD таблицу Excel можно очистить от кодов форматирования многострочного текста. Все процессы выполняются в реальном времени между открытыми окнами AutoCAD и Excel.
Установка производится через .bat-файл. Перед установкой Excel должен быть закрыт. При установке есть выбор набора команд контекстного меню для правой кнопки мыши. Если установка через .bat-файл не работает, можно установить надстройку вручную (Параметры > Надстройки > Управление (внизу окна) > Надстройки Excel > Перейти. > Обзор. > указать необходимый файл)
Команды в панель быстрого доступа (вверху) добавляются вручную (Параметры > Панель быстрого доступа > Выбрать команды из: (вверху окна) > Вкладка "Экспорт/импорт в AutoCAD" > Добавить).
Внимание. Во избежание потери данных вследствие фатальных ошибок nanoCAD и ZWCAD рекомендуется сохранять чертеж перед выполнением каких-либо действий.
- при экспорте в AutoCAD и nanoCAD новой таблицы экспортируются ширина и высота ячеек из Excel с округлением до 1 мм;
- при импорте таблицы из AutoCAD и nanoCAD на пустой лист Excel выдается запрос на импорт размеров ячеек;
- добавлена возможность создания связи таблицы nanoCAD и Excel (для AutoCAD, к сожалению, средствами VBA реализовать невозможно);
- улучшены алгоритмы разбивки объединенных ячеек и добавления строк и столбцов при экспорте в готовую таблицу.
- в nanoCAD исправлена ошибка при добавлении строк к существующей таблице;
- в nanoCAD исправлена функция отмены при экспорте;
- добавлена версия для ZWCAD.
- при импорте в Excel восстанавливаются предыдущие параметры вычислений в книге. Ранее всегда устанавливались на "Автоматически";
- в nanoCAD исправлена ошибка, при которой в существующую таблицу иногда не добавлялись новые столбцы, если не добавлять строки;
- в nanoCAD при экспорте и импорте таблицы .dwg, а также таблиц из примитивов размеры ячеек корректируются в соответствии с масштабом отображения объектов. Размер текста в таблице .dwg устанавливается согласно стилю таблицы либо вручную;
- в nanoCAD при создании связи таблицы nanoCAD и Excel связываемый диапазон теперь назначается по выделенным ячейкам на листе Excel. При выделении всех ячеек листа Excel создается связь со всем листом (без указания диапазона ячеек).
- при импорте в Excel перед значением ячейки будет добавлен служебный символ апострофа ('), если в ячейку импортируется значение, начинающееся с апострофа, или неприемлемое значение (например, формула с неверным десятичным разделителем), или значение, автоматически форматируемое в дату. В последних двух случаях апостроф будет добавлен, если формат ячейки не является текстовым. Служебный символ апострофа виден только в строке формул и не отображается на листе и при печати.
- при импорте в Excel исправлена ошибка при очистке объединенных ячеек.
- только при экспорте из Excel в AutoCAD добавлен автоповорот текста, если текст в ячейке Excel повернут на 90 градусов;
- добавлен поиск открытого окна AutoCAD при нескольких установленных версиях AutoCAD.
- в nanoCAD возникает ФАТАЛЬНАЯ ОШИБКА. в случае удаления ячеек смешанного типа (текст + блок), созданных или измененных при ранее проведенном экспорте в таблицу .dwg. Не экспортируйте данные в таблицу .dwg с ячейками смешанного типа;
- в nanoCAD неправильно работает метод добавления строк с наследованием свойств (InsertRowsAndInherit), в котором при добавлении строк к существующей таблице .dwg тип ячейки устанавливается как смешанный (текст + пустой блок) и создаются проблемы при последующей работе с таблицей. Метод заменен на InsertRows при котором в nanoCAD так же наследуются свойства последней строки таблицы;
- в nanoCAD периодически возникает ошибка, при которой в существующую таблицу не добавляются новые столбцы, если не добавлять строки. Ошибка потенциально исправлена добавлением дополнительных строк перед добавлением столбцов с последующим возвратом количества строк к исходному состоянию;
- в nanoCAD не работает экспорт в выделенную область таблицы .dwg (свойство HasSubSelection всегда False). Потенциально оставлена такая возможность, если это исправят в новых версиях nanoCAD;
- в nanoCAD при обновлении связи неверно устанавливаются размеры ячеек (не соответствуют размерам в режиме "Разметка страницы" в Excel). Чтобы сохранить ширину столбцов таблицы nanoCAD необходимо через редактор таблицы сохранить данную таблицу в файл .xls, скопировать из него столбцы и вставить их ширину на нужный лист (Специальная вставка > Ширины столбцов);
- в ZWCAD при экспорте таблица не обновляется самостоятельно. Для обновления таблицы необходимо совершить движение мыши в области окна программы;
- в ZWCAD при экспорте возможно зависание Excel. Если это произошло, следует удалить незавершенную таблицу, сохранить чертеж и перезапустить ZWCAD;
- при импорте таблиц из примитивов наличие среди примитивов блоков существенно замедляет процесс. Разбивайте ненужные блоки при импорте примитивов.
В чертежах нужно создавать спецификации и сметы, которые хранят описательную информацию. Поэтому полезно знать, как вставить таблицу из Excel в Автокад. Т.е. перенести табличные данные из Microsoft Excel в графический редактор.
Связь Эксель с Автокадом
Для импорта данных из Excel в AutoCAD нужно правильно связать данные с нужным файлом. Будет происходить обновление данных, если они будут меняться. См. видеоурок "Связь данных таблиц Excel и Автокад". Воспользуйтесь командой «Связь с данными», которая расположена на вкладке «Вставка», панель «Связывание и извлечение».
Вставку таблицы Еxcel в Аutocad можно совершить непосредственно при создании таблицы. Для этого нужно на вкладке «Аннотации» выбрать команду «Таблица» и в диалоговом окне «Вставка таблицы» указать параметры вставки данного объекта «На основе связи с данными» (см. рис.).
Какой бы способ ни был выбран для импорта из Экселя в Автокад, откроется диалоговое окно «Диспетчер связей данных», в котором нужно указать «Создать новую связь с данными Excel» (см. рис).
После этого обязательно введите имя данной связи. Старайтесь указывать название, отражающее суть.
Следующий шаг переноса таблицы из Еxcel в Аutocad – выбрать внешний файл, связь с которым вы хотите установить. Предусмотрена возможность связывать отдельный Лист Excel или же нужный диапазон при экспорте таблицы Excel в Autocad, путем указания ячеек (см. рис).
После нажатия «Ок» в Диспетчере связей появится иерархический список всех связей данного документа. Выделив связь, можно просмотреть образец таблицы в миниатюре. Для закрытия этого окна нажмите «Ок».
В результате в графическом поле AutoCAD появится таблица, перенесенная из Excel в Аutocad.
Изменение связи таблиц Автокад с Excel
Экспорт из Экселя в Автокад путем установления связи позволяет обновлять данные в таблицах при внесении изменений. Т.к. этот объект представляет собой гиперссылку.
Команда «Загрузить из источника» обновляет связанные данные в таблице в текущем чертеже с учетом внесенных корректировок во внешнем файле, то есть из Excel в Аutocad. С помощью команды «Выгрузить в исходный файл» происходит обновление данных в файле Excel в результате изменения табличных значений в файле Автокада.
Если вы подкорректируете таблицу в одном из файлов, всегда можно обновить данные с помощью Загрузки/Выгрузки информации (см. рис.).
Вставка Эксель в Автокад выполняется посредством установления связи между текущим чертежом и внешним файлом, расположенным на вашем компьютере. Теперь вам известно, как таблицу из Экселя перенести в Автокад и оформить проект со всей необходимой информацией. Возможно, вам будет полезна статья про то, как из Автокада перенести в Эксель.
Изучите наши базовые курсы из раздела "Autocad для чайников", которые можно найти на этом сайте (бесплатно для подписчиков)!
Читайте также: