Как отправить координаты точек из Autocad в Excel.
Форумы CADUser → Autodesk → Inventor → Как отправить координаты точек из Autocad в Excel.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщения 5
#1 Тема от Анна 1 августа 2007г. 23:46:34
Тема: Как отправить координаты точек из Autocad в Excel.
Здравствуйте!
Подскажите, пожалуйста, как можно отправить в Excel(или просто получить в табличном виде) координаты точек, прорисованных в Autocad? Точек много (несколько тысяч),поэтому вручную нельзя.
#2 Ответ от Oleg 2 августа 2007г. 16:54:04
Re: Как отправить координаты точек из Autocad в Excel.
я делаю так:
командой list получить параметры всех точек
перейти F2 в текстовое окно скопировать и перенести в текстовый редактор, в котором в автоматическом режиме «подправить» информацию
убрать ненужные строки, знаки и т.д.
вплоть до получения численных значений х и у
через запятую. затем сохранить отредактированный текстовый файл и открыть в экселе
#3 Ответ от Игорь Богаченко 2 августа 2007г. 17:48:47
- Игорь Богаченко
- Активный участник
- Откуда: Украина / Ивано-Франковская /
- На форуме с 14 сентября 2005г.
- Сообщений: 429
- Спасибо: 2
Re: Как отправить координаты точек из Autocad в Excel.
> Анна
Я это делаю и часто, при помощи ToolPac 9.
Его можно скачать на сайте: www.dwg.ru
И не только точки, а координаты всех примитивов, можно импортировать в Ексель.
#4 Ответ от Игорь Богаченко 2 августа 2007г. 18:03:22
- Игорь Богаченко
- Активный участник
- Откуда: Украина / Ивано-Франковская /
- На форуме с 14 сентября 2005г.
- Сообщений: 429
- Спасибо: 2
Re: Как отправить координаты точек из Autocad в Excel.
> Олег
Такой номер не пройдет. В текстовом окне отобразиться параметры только определенной части информации, если даже жать кнопку далее, то все-равно получим список только не более 80 точек. Чтобы увидеть все, необходимо вести файл журнала, и оттуда вылавливать то, что вам необходимо. Или получать список части точек. Но, при этом легко запутаться.
Импорт точек из автокада в эксель и наоборот 2014-08-13
Есть окно автокада с точками POINT,нам необходимо их экспортировать в ексель,отрываем ексель,запускаем программку,нажимаем кнопку Автокада (на панельке программы),заходим в акад и выбираем нужные точки,нажимаем интер,возвращаемся в ексель и нажимаем стрелку указывающую на ексель-экспорт точек совершен.Либо выделяем точки в экселе для импорта и жмем стрелочку указывающую на автокад-импорт совершен.Для импотрта точек формат № X Y Z.
LispBox
~ This blog was initially created for people, who love autolisp routines, as I love it.
Импорт и экспорт данных между чертежом AutoCAD и Excel
14 Sunday Dec 2014
Обновление данных атрибутов из 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 в коде, который показан ниже:
(if (and (= (vla-get-HasAttributes blkobj) :vlax-true) (> (strlen bobjname) 13) (= (substr bobjname 1 14) "FA_DEVICE_INIT") ) ;_ end of and (progn (setq inspt (vla-get-InsertionPoint blkobj)) (setq ipt (vlax-safearray->list (vlax-variant-value inspt))) (setq attribs (vla-getAttributes blkobj)) (setq sarr (vlax-variant-value attribs)) (setq num (vlax-safearray-get-u-bound sarr 1)) (if (and (> num 0) (<(car ipt) 3000.0) )
В нашем примере во второй и третьей строке установлены параметры для включения вставленных блоков. По логике программы это происходит, если имя блока больше чем 13 символов и первые 14 символов – FA_DEVICE_INIT. Вы можете изменить это для чтобы программа обрабатывала ваши блоки. В предпоследней строке показанного кода указывается, что необходимо рассматривать только те вставки блока, где точка вставки меньше чем 3,000″ в направлении оси X. Вы так же можете изменить это в соответствии с вашими критериями.
Следующая функция, PRINT-OUT, ссылается на несколько специфических атрибутов – ADDRESS1 и DEVICE_LOCATION – вы можете изменить их на ваши атрибуты блока в сегменте кода функции PRINT-OUT, который показан ниже:
(write-line "ADDRESS1,Name,Device_Location,floor,X,Y" f1) (repeat (length blklst) (setq lst (nth (setq i (1+ i)) blklst)) (setq str (strcat (cadr (assoc "ADDRESS1" (nth 1 lst))) "," (car lst) "," (cadr (assoc "DEVICE_LOCATION" (nth 1 lst))) "," (itoa floor) "," (rtos (car (last lst))) "," (rtos (cadr (last lst))) ) ;_ end of strcat ) ;_ end of setq (write-line str f1) ) ;_ end of repeat
Функция DO-IMPORT открывает предназначенный для импорта CSV-файл и вызывает функцию DO-ADDRESS для построчного чтения этого файла, возвращает она список точек вставки блоков и список изменений для отображения в диалоговом окне Address Changes. Если вы хотите настроить эту часть кода для своих нужд, вы должны придерживаться структуры CSV-файла как показано на рис. 3, с учетом следующих критериев:
- Первое поле – это значение атрибута, которое можно изменять (ADDRESS1 в этой программе).
- Второе поле – это имя вставляемого блока.
- Третье поле – значение второго атрибута, эквивалентное DEVICE_LOCATION.
- Четвертое поле – номер комнаты.
- Последние два поля – координаты X и Y точки вставки блока.
Имена атрибутов, упомянутые выше, также присутствуют в последних двух описанных функциях и должны быть изменены соответственно при необходимости.
Lisp
Здесь хранятся сторонние приложения для AutoCAD (*.lsp) найденные на просторах интернета. Страничка обновляется по мере очередной находки. Как установить приложение в автозагрузку или создать для него кнопку читаем здесь.
ba.lsp - скрывает задний план всех текстовых объектов (и размеров тоже), попутно превращая обычный текст в мультитекст присваивая цвету заливки текста цвет фона чертежа. Команда вызова на выполнение - BA, после чего выбираем объект(ы) и подтверждаем выбор клавишей enter (или правой кнопкой мыши).
coorn.lsp - экспорт координат указанных точек, выбранных объектов: точек, блоков, полилиний, сплайнов в текстовый файл или в excel с простановкой номеров. Команды вызова на выполнение:
- COOR, это экспорт координат, после чего выбираем объект(ы) и подтверждаем выбор клавишей enter (или правой кнопкой мыши);
- COORN, это экспорт координат с нумерацией, после чего выбираем объект(ы) и подтверждаем выбор клавишей enter (или правой кнопкой мыши);
- COORT, это экспорт координат с нумерацией, где номером считается ближайший к точке текст, после чего выбираем объект(ы) и подтверждаем выбор клавишей enter (или правой кнопкой мыши).
Geo_Import_v2_10.VLX - импорт файла с геодезическими координатами *.sdr, *.txt, *csv. Команда вызова на выполнение - GEO_IMPORT, после чего появляется окно с интуитивно понятным интерфейсом.
Insert-ByAng.fas - вставляет объекты под заданным углом к кривой (линия, полилиния, оптимизированная полилиния, сплайн, дуга, окружность). Команда вызова на выполнение - INS-BYANG, после чего действуем согласно инструкции.
xy-a.lsp - создаёт выноску текущего стиля с геодезическими координатами указанной точки. Команда вызова на выполнение - XY, после чего выбираем точку и указываем место вставки выноски левой кнопкой "мыши".
XYZDifferences.dll - расставляет отклонения по X, Y, Z между проектной точкой и фактической. Данная библиотека предварительно подгружается командой NETLOAD. Команда вызова на выполнение - XYZDifferences, после чего появляется окно с интуитивно понятным интерфейсом.
Отметка.lsp - расставляет заданной высоты текстовые отметки точек, указывая в качестве точки вставки текста, координаты точки. Команда вызова на выполнение - 2, после чего выбираем точку(и) и подтверждаем выбор клавишей enter (или правой кнопкой "мыши").
