Управление автокад из эксель
Для наглядности продемонстрирую как все это работает на реальном проекте.
Примеры использования
В следующем видео я хочу рассказать о примерах применения этого макроса для выполнения разных задач проектирования. Безусловно, область применения данного инструмента гораздо шире.
Первые шаги
И наконец в следующем видео я пошагово объясняю порядок работы, надеюсь, достаточно доступно. Так же я выпустил платную, боле быструю версию программы с расширенным функционаломCAD_EX+
27 комментариев:
День добрый. Отличный инструмент.
В начале третьего видео говорится о привязке автокада к экселу через визуалбейсик. Но в рассмотренном примере, автокад 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 блоков обновление данных - у меня очень долго обновляется информация. Можно ли как-то ускорить это процесс, или я где-то поменять настройки?
Добрый день!
Все зависит от количества атрибутов в блоке, чем их больше, тем соответсвенно дольше происходит обновление
В экселе создана таблица. Настроена связь с данными в каде с этой таблице. В автокаде вставлена таблица на основе связи с таблицей Excel.
Если я перемещаю таблицу Excel в другое место, связь нарушается. Снова настраиваю связь с уже перемещенной таблицей, но сама таблица в каде не изменяет связь (она ссылается на первоначальное местоположение экселевского файла).
Можно ли каким-нибудь образом обновить связь в самой таблице? Удалять и создавать новую я не могу, т.к. таблице в каде привязано много полей.
И заодно ещё один вопрос - можно ли у уже созданной таблицы в каде изменить связь. Т.е. я создал таблицу, скопировал её, и нужно задать ей другую связь.
Последний раз редактировалось Yur.OK_SPb, 30.07.2011 в 16:07 .Если я перемещаю таблицу Excel в другое место, связь нарушается. |
Снова настраиваю связь с уже перемещенной таблицей, . |
Можно ли каким-нибудь образом обновить связь в самой таблице? |
Выложите пример, расскажите подробнее что вы хотите получить в итоге? какова задача? . вообще можно, но в данном случае никому не известно что у вас там.
Выложите пример, расскажите подробнее что вы хотите получить в итоге? какова задача?
Вот пример. Объясняю.
На чертеже имеется 3 таблицы.
Левая связана с листом "выемка" в документе "123.xlsx". При помощи полей вынесены отметки из этой таблицы в виде "проект/факт" для левой, осевой и правой точек.
Средняя таблица - это полная копия левой таблицы с полями-отметками. Соответственно она тоже связана с листом "выемка" в документе "123.xlsx"
Правая таблица - это лист "насыпь" из документа "123.xlsx". Нужно к нему быстро привязать поля, как и в первой таблице, но в ручную это делать очень муторно (т.е. выбирать поле, формула, ячейка для каждой из ячеек таблицы). Поэтому я и хочу у средней таблицы изменить связь с выемки на насыпь, и поля у средней таблицы сами поменяться.
Мне нужно выносить отметки с 20-40 поперечников автомобильной дороги на её плановое положение. При этом отметки есть в табличном виде, как в примере. После проведенных операций мне будет достаточно перетянуть поле "проект/факт" на нужное место на чертеже, а не вручную забивать все эти числа. Надеюсь, что понятно объяснил.
P.S. Я на данный момент нашел только один способ изменить связь у таблицы:
применительно к моему примеру - нужно зайти в среднюю таблицу, выделить ячейку А1, зайти в свойства таблицы, закладка "ячейка", и в самой нижней строке в пункте "связь с данными ячейками" можно изменить связь с "выемка" на "насыпь". При этом данные выемки отодвинутся ниже и правее, станут несвязными (нужно удалять лишние строки и столбцы). Но нужные ячейки будут ссылаться на "насыпь", поля работают исправно.
Вот теперь понятно, т.е.:
1. Автоматически вставлять в чертёж данные из excel в виде отдельных полей
2. Автоматически менять источник этим полям
Готовых автоматических способов не нашёл, скорее всего их просто нет.
Однако можно попробовать сделать это полуавтоматически, связав поле с ячейкой Excel напрямую, без манипуляций с DWG таблицей, указав в качестве источника Базу данных AD. В этом случае смена источника (ячейки) происходит в 2-3 клика.
Во-вторых, источники полям одновременно можно поменять если они сгруппированы как-то, например в таблицу, а россыпью никак!
Если поля будут располагаться как в примере, то тогда почему бы их не сделать в виде таблицы?
Тогда но проблем!) )
Вот теперь понятно, т.е.:
1. Автоматически вставлять в чертёж данные из excel в виде отдельных полей
2. Автоматически менять источник этим полям
Готовых автоматических способов не нашёл, скорее всего их просто нет.
Однако можно попробовать сделать это полуавтоматически, связав поле с ячейкой Excel напрямую, без манипуляций с DWG таблицей, указав в качестве источника Базу данных AD. В этом случае смена источника (ячейки) происходит в 2-3 клика.
Во-вторых, источники полям одновременно можно поменять если они сгруппированы как-то, например в таблицу, а россыпью никак!
Если поля будут располагаться как в примере, то тогда почему бы их не сделать в виде таблицы?
Тогда но проблем!) )
А можете что-нибудь в качестве примера набросать? Мне не совсем понятно, как поля связывать с таблицами Эксель напрямую.
Блииин, создал я 210 полей, которые ссылаются на ячейки таблицы размером 6*35, их копирование и изменение связи на другую таблицу приводит к зависанию автокада. Что делать? Что служит тормозящим фактором? Если просто создавать таблицу - то все довольно быстро. Но вот изменение связи фатально.
Может ли это быть от того, что файлы лежат в сети? Какие пункты выбирать при создании связи в пунктах "содержимое ячеек и форматирование ячеек"?
Я инженер-проектировщик ОВиК, не программист. И не хочу, да и некогда, вникать в серьезное программирование. Чаще всего появляется ситуация, что нужно как-то автоматизировать рутину здесь и сейчас. На помощь приходит простой язык 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 в Автокад. Т.е. перенести табличные данные из Microsoft Excel в графический редактор.
Связь Эксель с Автокадом
Для импорта данных из Excel в AutoCAD нужно правильно связать данные с нужным файлом. Будет происходить обновление данных, если они будут меняться. См. видеоурок "Связь данных таблиц Excel и Автокад". Воспользуйтесь командой «Связь с данными», которая расположена на вкладке «Вставка», панель «Связывание и извлечение».
Вставку таблицы Еxcel в Аutocad можно совершить непосредственно при создании таблицы. Для этого нужно на вкладке «Аннотации» выбрать команду «Таблица» и в диалоговом окне «Вставка таблицы» указать параметры вставки данного объекта «На основе связи с данными» (см. рис.).
Какой бы способ ни был выбран для импорта из Экселя в Автокад, откроется диалоговое окно «Диспетчер связей данных», в котором нужно указать «Создать новую связь с данными Excel» (см. рис).
После этого обязательно введите имя данной связи. Старайтесь указывать название, отражающее суть.
Следующий шаг переноса таблицы из Еxcel в Аutocad – выбрать внешний файл, связь с которым вы хотите установить. Предусмотрена возможность связывать отдельный Лист Excel или же нужный диапазон при экспорте таблицы Excel в Autocad, путем указания ячеек (см. рис).
После нажатия «Ок» в Диспетчере связей появится иерархический список всех связей данного документа. Выделив связь, можно просмотреть образец таблицы в миниатюре. Для закрытия этого окна нажмите «Ок».
В результате в графическом поле AutoCAD появится таблица, перенесенная из Excel в Аutocad.
Изменение связи таблиц Автокад с Excel
Экспорт из Экселя в Автокад путем установления связи позволяет обновлять данные в таблицах при внесении изменений. Т.к. этот объект представляет собой гиперссылку.
Команда «Загрузить из источника» обновляет связанные данные в таблице в текущем чертеже с учетом внесенных корректировок во внешнем файле, то есть из Excel в Аutocad. С помощью команды «Выгрузить в исходный файл» происходит обновление данных в файле Excel в результате изменения табличных значений в файле Автокада.
Если вы подкорректируете таблицу в одном из файлов, всегда можно обновить данные с помощью Загрузки/Выгрузки информации (см. рис.).
Вставка Эксель в Автокад выполняется посредством установления связи между текущим чертежом и внешним файлом, расположенным на вашем компьютере. Теперь вам известно, как таблицу из Экселя перенести в Автокад и оформить проект со всей необходимой информацией. Возможно, вам будет полезна статья про то, как из Автокада перенести в Эксель.
Изучите наши базовые курсы из раздела "Autocad для чайников", которые можно найти на этом сайте (бесплатно для подписчиков)!
Читайте также: