IOAV
Для наглядности продемонстрирую как все это работает на реальном проекте.
Примеры использования
В следующем видео я хочу рассказать о примерах применения этого макроса для выполнения разных задач проектирования. Безусловно, область применения данного инструмента гораздо шире.
Первые шаги
И наконец в следующем видео я пошагово объясняю порядок работы, надеюсь, достаточно доступно.
Надеюсь, этот материал был вам полезен.
Материалы для скачивания:
Так же я выпустил платную, боле быструю версию программы с расширенным функционалом
CAD_EX+
34 комментария:
День добрый. Отличный инструмент.
В начале третьего видео говорится о привязке автокада к экселу через визуалбейсик. Но в рассмотренном примере, автокад 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 и Нанокад (бесплатная версия). Удалить
Проверьте Refrences, в моем файле по умолчанию стоит 17 Автокад, снимите с него галочку и поставьте галочку на свою версию. Если не поможет, пришлите мне максимально подробное описание со скриншотами, на ioavant@gmail.com, обязательно приложите скриншоты открытого окна References Ответить Удалить
Добрый день) у вас в видео обновление данных довольно оперативно проходит. Я Попробовал прогнать на 100 блоков обновление данных — у меня очень долго обновляется информация. Можно ли как-то ускорить это процесс, или я где-то поменять настройки? Ответить Удалить
Добрый день!
Все зависит от количества атрибутов в блоке, чем их больше, тем соответсвенно дольше происходит обновление Удалить
Добрый день! При переключение модуля на Autocad 2010 выходит ошибка «Name conflicts with existing module, project, or object library». В чем дело? Ответить Удалить
Добрый день!
Пришлите мне скриншот открытого окна reference на почту ioavant@gmail.com Удалить
Name conflicts with existing module, project, or object library — ошибка при выборе Autocad 2010 в VBA Ответить Удалить
Добрый день!
Расскажите, пожалуйста, про макросы на втором листе — что делают кнопками GET PARAM, UP PARAM. И для чго используются ячейки E3:G4, A3? Ответить Удалить
Добрый день!
Эта вкладка для работы с параметрами блоков, основы продемонстрированы в видео https://youtu.be/M6l9LALSQ3k Ответить Удалить
Добрый день!
Подскажите пожалуйста возможно я что то упустила. Возможно ли редактирование значений в автокаде и соответственно чтобы они изменялись в таблице excel? Ответить Удалить
Здравствуйте!
Да, это возможно. Меняйте значения в Автокаде, потом запускайте команду Select on screen и выбирайте объекты на чертеже, данные в соответствующих ячейках обновятся. Я в основном работаю в направлении загрузки данных из Экселя в Автокад, поскольку активно использую формулы и другие преимущества Эксель для работы с данными. Удалить
Здравствуйте! при запуске все выходит как абракадабра, что это может быть? Ответить Удалить
Пришлите мне на почту скриншот, попробуем разобраться Удалить
Добрый день!
Хочу поблагодарить Вас. Пользуюсь CAD_EX уже в нескольких проектах для автоматизации создания схем для приборов КИП.
Подскажите, новая версия CAD_EX+ может работать с параметрами видимости блоков AutoCAD?
Ответить Удалить
Добрый день Алексей,
Рад слышать что CAD_EX помогает в вашей работе. Да, обе версии поддерживают работу с параметром видимости. Разница в том, что в бесплатной версии это только один параметр (в том числе и видимость), а в CAD_EX+ количество параметров не ограничено. Хочу почеркнуть что AutoCAD дает сделать только один параметр видимости для каждого блока. Удалить
Добрый день. Отличная программа! Спасибо за неё, очень помогала в работе. Вот только что то пошло не так. При нажатии любой кнопки просто запускается автокад с пустым листом. Ответить Удалить
Попробуйте заново скачать файл и привазать его к AutoCAD Удалить
Добрый вечер. Очень заинтересовала ваша программка возможно будет полезна в проектировании ЛЭП. Но что-то не работает у меня. Все сделал как вы описывали, потом запускаю автокад, нажимаю «select on screen», начинает указатель крутиться в режиме ожидания, потом через минуту или полторы выдает ошибку Run-time error ‘429’: ActiveX component can’t create object. и все, функция выбора в автокаде при этом не запускается. Что с этим делать? Ответить Удалить
Когда указатель начинает крутиться после нажатия Select on screen, нужно переключиться в Автокад и там выбрать обьекты Удалить
САПР для инженера
Поговорим сегодня о таблицах в AutoCAD, а точнее о их связи с электронными таблицами Excel.

В AutoCAD можно вставить существующую таблицу Excel, при этом сохраняется двусторонняя связь между программами. Если изменить исходную Excel-таблицу, то изменится и связанная с ней таблица в AutoCAD, аналогично при изменении таблицы в AutoCAD поменяется и исходная. Связь поддерживается на уровне данных и форматирования таблиц.
Рассмотрим основные моменты работы на примере создания перечня элементов.
Задача: есть таблица с перечнем элементов, созданная в Excel

Необходимо импортировать эту таблицу в AutoCAD так, чтобы сохранилась двухсторонняя связь между ними.
Создание связи с данными и вставка таблицы
1. Запускаем в AutoCAD команду Таблица . В диалоговом окне выбираем пункт На основе связи с данными . В выпадающем списке еще нет никаких связей, мы создадим новую, выбрав соответствующий пункт меню или нажав кнопку рядом

2. В окне Выбор связи данных создаем новую связь с данными Excel

3. Присваиваем ей имя

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

5. Теперь в окне Выбор связи данных выбираем нашу созданную связь и вставляем таблицу в чертеж


6. После создания связи с таблицей в правой части строк состояния появляется символ связи и в виде цепочки

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

Чтобы изменить блокировку необходимо из контекстного меню таблицы выбрать меню Блокирование, где доступно четыре опции:
- Разблокирование — снятие всех блокировок с таблицы (при этом связь с Excel сохраняется)
- Содержимое заблокировано — блокировка содержимого таблицы, но не ее формата
- Формат заблокирован — запрет изменения формата, но возможность редактирования данных таблицы
- Содержимое и формат заблокированы — полная блокировка таблицы (этот параметр установлен по умолчанию для всех вновь созданных таблиц)

Проще говоря, заблокировав содержимое мы сможем брать данные из любой таблицы Excel и оформлять ее в AutoCAD так, как нам нужно. При этом данные всегда будут актуальны. На нашем примере — перечень элементов создан путем экспорта в Excel из EDA-приложения, вставлен в AutoCAD с разблокированным форматированием и оформлен по ЕСКД средствами AutoCAD.
Попробуем поменять и сохранить исходную таблицу, при этом в строке состояния AutoCAD выйдет сообщение о том, что данные в исходной таблице изменены и будет предложено их обновить. Если сообщения нет, то необходимо из контекстного меню таблицы выбрать меню Связь с данными и пункт Загрузить изменения из исходного файла.

Если разблокировать содержимое или формат таблицы, то можно ее править в самом AutoCAD и в любой момент передать изменения в исходный Excel-файл. В уже известном нам меню Связь с данными есть соответствующие команды:
- Загрузить изменения из исходного файла
- Выгрузить пользовательские изменения в исходный файл — позволяет выгрузить изменения таблицы, сделанные в AutoCAD в исходный Excel-файл (опять же, можно связать как содержимое, так и формат). ВАЖНО! Перед выгрузкой данных убедитесь, что файл с таблицей Excel закрыт!
- Редактирования связи с данными — запускает окно изменений связи с Excel
- Открыть файл связей с данными (не очень удачный перевод на русский язык) — открывает исходную таблицу Excel
- Разорвать связь с данными — удаляет связь — таблицы становятся независимыми.
Заключение:
- Любую таблицу Excel можно вставить в чертеж AutoCAD. При этом можно вставить как весь лист таблицы, так и его конкретную часть. Можно создать множество таблиц AutoCAD на основе одного файла Excel
- Вставленная таблица имеет двустороннюю связь с исходным Excel-файлом. Связь поддерживается на уровне данных и уровне форматов. Можно включать/отключать каждый тип связи для каждой таблицы — это дает огромные возможности для совместной работы проектировщиков, сметчиков, плановых служб и пр., когда все всегда пользуются актуальными данными
- Благодаря возможности блокировки/разблокировки связи формата можно брать за основу любую таблицу Excel и оформлять ее в AutoCAD стандартными средтвами
- При двусторонней связи всегда есть опасность одновременного внесения изменений, поэтому грамотная организация этого процесса очень важна
- Связь между таблицами можно разорвать.
С уважением, Андрей
Если вы получили ответ на свой вопрос и хотите поддержать проект материально — внизу страницы для этого есть специальная форма.
56 комментариев:

Андрей, немного не основную тему. но как сохранить форматирование ячейки при удалении содержимого ячейки?
Пользуюсь в автокаде только таблицами, даже доверяю им несложные расчеты, но вот удаление форматирования никак не поборю. Ответить Удалить
Действительно, формат исчезает если удалить содержимое, даже если форматирование заблокировано. Даже не знал о такой особенности. Что могу пока сходу посоветовать — не удалять содержимое, а вставлять пробел. Тогда внешне и ячейка пустая и формат не слетает. Попробовал — получается. Но все же попробую найти правильное решение, если оно есть. Удалить
подумал тут, что если в ячейку вбивать пробел, то если она участвует в расчетах, то будет error. В таком случае надо 0 вставлять. Перелопатил справку, пока про удаление форматирования ничего не нашел, похоже, что это баг в программе Удалить
в правом нижнем углу — указатель на развертывание. а дальше все понятно) Удалить
Павел, согласен с Вами, но это относится к таблицам, импортированным из Excel. Пользователь gip.14.08 же спрашивает об обычных таблицах AutoCAD. Удалить
Проблема исчезает, если форматирование ячейки настраивать не в самой таблице а Стилях таблиц. И далее стиль ячейки сменить с «по строке/столбцу» на тот стиль, который вы отредактировали как полагается. Более подробную информацию см. мой ответ на вопрос Вероники Кузнецовой ниже. Корень ее проблемы такой же)))) Удалить

Да, приходилось вставлять ноль и назначать его цвет под цвет фона, что бы ячейка казалась пустой.
Я с похожим вопросом обращался к разработчикам еще при 2010 автокаде. Но, за давностью лет, не помню точно, что они ответили. Что-то типа: » мы над этим работаем «.
Для меня было бы удобно, если бы при удалении содержимого ячейки или группы ячеек, форматирование оставалось при нажатых клавишах Del+(Ctrl или Alt). Ответить Удалить
Да, похоже ничего не поменялось с тех пор 🙁 Тем не менее проблема меня заинтересовала, поищу еще решение Удалить
Андрей, добрый день.
Удалось найти решение? Удалить
Здравствуйте, Андрей! Подскажите, пожалуйста, как сделать так, что бы AutoCad чертил по данным таблицы, вставленной из Excel? Ответить Удалить
Боюсь стандартными средствами AutoCAD это невозможно. Можно написать программу на Lisp, которая будет считывать данные из таблиц и что-то по ним строить Удалить
Спасибо, Андрей. Не подскажите, где можно подробнее почитать о Lisp? Удалить
Самый лучший способ изучить LISP — это прочитать эту книгу «САПР на базе AutoCAD: как это делается» (С.А.Зуев, Н.Н.Полещук, при участии П.Лоскутова). В интернете куча сайтов, но качество контролировать невозможно. Удалить
Спасибо Вам, Андрей) Удалить
Вера, не за что! Главное, чтобы во благо. Удалить
Добрый день, Андрей.
подскажите, как сохранить форматирование таблицы в автокаде, при обновлении данных из экселя? напрочь сбивается все оформление по ЕСКД Ответить Удалить
Вероника, к сожалению, сейчас нет такой возможности. Форматирование «слетает» при любых настройках и условиях. В 2014 версии та же история. Удалить
очень жаль, а то было бы идеально)) Удалить
Проблема решается следующим образом. В меню редактирования ячейки (не содержимого ячейки, а самой) есть такое свойство — стили ячеек. Там всегда по умолчанию стоит «по строке/столбцу». Это типа по умолчанию, потому при обновлении с экселя автокад возвращает это форматирование (оно было при вставке связи). Чтобы избежать этого для каждой ячейки надо задать свой стиль (например, выбрать из 3-х преложенных: Данные, Заголовок, Название). Но чтобы выбранный вами стиль соответствовал ЕСКД, сначала его необходимо отредактировать (настроить размер текста, его стиль, выравнивание) в меню Стили Таблиц. Далее присвоить таблице отредактированный стиль и в соответственном меню выбрать необходимый стиль ячеек.
P.S. Всегда для своих целей создавайте новые стили (таблиц, текста, мультивыноски, размеров) а не редактируйте стиль «Standart». Иначе при открытии на других компьютерах, автокад будет использовать не ваши настройки этого стиля, а настройки по умолчанию, и все ваши труды на смарку — получится каша))) Удалить
Спасибо за комментарий! Удалить
Алексей, Андрей, подскажите пожалуйста:
а если мне нужно, чтоб один столбец данных имел выравнивание по центру,
другой- влево? Если я использую стиль данные, он будет один для всех столбцов.
Спасибо заранее. Удалить
Стиль применяется для всех столбцов одновременно Удалить
при экспорте таблицы из автокад 2013(пользуюсь встроенными таблицами с ячейками и т.д. аналого экселя) вместо диаметра в экселе перед числом %%C, тоже самое с градусами и степенями, это возможно как то пофиксить? я в принципе пишу дм, град, и м.кв. но хотелось бы именно символы если это возможно =)
Заранее спасибо Ответить Удалить
Добрый день! Символы экспортируются так как Вы описали, т.к. это внутренние коды AutoCAD и Excel их естественно не понимает. Побороть нельзя, к сожалению. Используйте символы из шрифтов TTF, тогда все отлично передается Удалить
Импорт значений из Excel в Autocad
Добрый день!
Из файла Excel в Autocad надо перенести числено-буквенные значения и расставить их рядом с блоками после чего желательно иметь возможность повернуть или переместить их при редактировании в Autocad, похожая задача была описана в www.autocad.ru/cgi-bin/f1/board.cgi?t=230HW в 2002 году, к сожалению метода ее решения не понял , имеется Autocad 2004 , 06 и 07 и Excel 2003 . Сейчас рядом с блоками создаю текстовую строку и заполняю ее руками. Пытался подключить Excel файл как источник данных но после подключения выполнить запрос к таблице так и не смог . Прошу знающих путь решения подсказать как выполнить подобную задачу. С уважением Андрей.
#2 Ответ от Valery Brelovsky 6 апреля 2007г. 13:15:47
- Valery Brelovsky
- Активный участник
- Откуда: Израиль / Север Израиля / Кирь
- На форуме с 3 июня 2005г.
- Сообщений: 2,359
- Спасибо: 19
Re: Импорт значений из Excel в Autocad
> Андрей
Посмотри здесь. Похожая тема. Но цели Вашего мероприяти не улавливаю.
Т.е. нужно более конкретезировать задачу и имеющиеся данные.
https://www.caduser.ru/forum/topic34561.html
#3 Ответ от Андрей 6 апреля 2007г. 13:49:49
Re: Импорт значений из Excel в Autocad
Цель — перенумеровать мебель на плане здания нумерация и подсчет легче производятся в Excel, а нумерация на этаже сквозная , как следствие при изменении количества стульев в комнате х приходится переписывать значения всех стульев начиная с этой комнаты. пока закончишь уже в другую комнату добавили/убрали стол или стул, как вариант внесение данных из хлс файла
#4 Ответ от Valery Brelovsky 6 апреля 2007г. 14:20:27
- Valery Brelovsky
- Активный участник
- Откуда: Израиль / Север Израиля / Кирь
- На форуме с 3 июня 2005г.
- Сообщений: 2,359
- Спасибо: 19
Re: Импорт значений из Excel в Autocad
> Андрей
Теперь цель мероприяти понятна.
Посмотри в разделе Готовых прогам. Там было что то похожее.
Второе для такой цели можно создать таблицу в 2006 или 2007 и их значения привязать к мебели.
Таблицы похожи на Excel_евские но правда немного дубоваты. Но возможно это будет достаточно.
И есть ещё программа ToolPac. В ней есть работа с таблицами Excel, но сам я это не пробовал. Если найду Архив могу сбросить на Мыло.
#5 Ответ от Андрей 6 апреля 2007г. 15:24:39
Re: Импорт значений из Excel в Autocad
С радостью приму файл на почту, может и поможет . с таблицами в 2007 пробывал к сожелению неудобно, вероятно не владею полным спектром операций (нету гибкости переноса и пересчета информации), надеюсь даную тему всетаки осветят — работа с обьектами баз данных или просто таблиц может позволить быстрее создавать описания без усложнения и добавления третих програм.
#6 Ответ от Valery Brelovsky 7 апреля 2007г. 09:47:52
- Valery Brelovsky
- Активный участник
- Откуда: Израиль / Север Израиля / Кирь
- На форуме с 3 июня 2005г.
- Сообщений: 2,359
- Спасибо: 19
Re: Импорт значений из Excel в Autocad
> Андрей
Отправил.
#7 Ответ от ajlena 9 апреля 2007г. 01:13:40
Re: Импорт значений из Excel в Autocad
а может мебель исполнять как блоки с атрибутами и потом «извлечеие атрибутов» и автоматическое пересчитывание блоков (мебели в данном случае)?
#8 Ответ от ajlena 9 апреля 2007г. 01:23:57
Re: Импорт значений из Excel в Autocad
я тут не очень внимательна и поэтому прощения прошу.
Тут что-то вроде наброска программы по пересчету ьлоков на листе с лево-верх. право-низ
укажите мышкой блок
и сдвиг цифры (число с клавиатуры)
конечно лучше нумеровать в одельном слое и при необходимости все вытирать и пересчитывать заново.
(defun c:blc()
(setq list_cen ‘())
;===============================================================================
(setq id_bl (car (entsel «Укажите блок»)))
(setq rast (getreal «\nВведите смещение цифры»))
;==============================================================================
(setq vid_bl (vlax-ename->vla-object id_bl))
(setq bl_name (vla-get-name vid_bl))
(setq cn_bl (ssget «_x» (list (cons 0 «insert»)(cons 2 bl_name))))
(lena cn_bl)
;(setq l1 (vl-sort list_cen (function (lambda (e1 e2) ( < (car e1) (car e2))))))
;(setq l2 (vl-sort list_cen (function (lambda (e1 e2) (> (cadr e1) (cadr e2))))))
;====================== сортировка=============
(setq X_Sorted (vl-sort list_cen (function (lambda (e1 e2) ( < (car e1) (car e2))))))
(setq Y_Sorted (vl-sort X_Sorted (function (lambda (e1 e2) (and (equal (car e1) (car e2)) (> (cadr e1) (cadr e2)))))))
;==============================================
;(sasha l1)
(sasha Y_Sorted)
)
;===============================================================
(defun lena (A)
(setq idd 0)
(setq nn (sslength A))
(setq kol nn)
(repeat kol
(setq el (ssname A idd))
(setq vel (entget el))
(setq cenid (cdr (assoc 10 vel)))
(setq list_cen (append list_cen (list cenid)))
(setq idd (1+ idd))
)
)
;==============================================================
(defun sasha (A)
(setq id 1)
(setq idd 0)
(setq nn (length A))
;====================
(repeat nn
(setq el (nth idd A))
(setq x (car el))
(setq y (cadr el))
(setq x (+ x rast))
(setq y (+ y rast))
(setq pt (list x y))
(command «text» pt «3» «0» (rtos id))
(setq idd (1+ idd))
(setq id (1+ id))
)
;===================
)
Повторение заглавной таблицы на последующих страницах
При работе с очень длинными таблицами они будут работать на нескольких страницах. Таблицу можно настроить так, чтобы строки или строки ее заглавных строк автоматически появлялись на каждой странице.
Настроить таблицу таким образом, чтобы строки ее заглавных строк или строк повторялись, можно двумя способами.
Здесь доступны перечисленные ниже возможности

- Вы можете выбрать строку или строки заглавных строк, которые нужно повторить на каждой странице. Выделенный фрагмент должен включать первую строку таблицы.
- В разделе Работа с таблицами на вкладке Макет в группе Данные выберите команду Повторить строки заголовков.
Или вы можете использовать этот способ:
- В таблице щелкните правой кнопкой мыши строку, которую вы хотите повторить, и выберите «Свойства таблицы».
- В диалоговом окне Свойства таблицы на вкладке Строка установите флажок Повторять как заголовок на каждой странице.
- Нажмите кнопку ОК.
- Повторяные заглавные таблицы видны только Режим разметки или при печати документа.
- Если изменить заглавную страницу на первой странице, он также будет изменяться на всех остальных страницах. Изменить заглавную строку таблицы можно только на первой странице— строки заглавных строк на последующих страницах будут заблокированы.
- Хотя Word на новых страницах будут автоматически повторяться заглавные страницы, при вставке в таблицу разрыва страницы вручную они не повторяются.