Содержание
LispBox
Обновление данных атрибутов из CSV-файлов
Описание подпрограммы для импорта и экспорта данных меж чертежом AutoCAD и электронной таблицей Excel.
Tony Hotchkiss,
www.cadalyst.com
Используя команду экспорта данных AutoCAD, которая находится в меню Tools можно извлечь данные атрибутов в файл электронной таблицы Excel либо в таблицу, размещенную в самом чертеже. Используя эту возможность, почти все отыщут неплохой идею редактировать атрибут конкретно в электронной таблице, но чтоб модифицированные атрибуты показывались в чертеже нужно создавать обратный экспорт.
В данной статье описан пример схожей подпрограммы. Она состоит из 2-ух файлов (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” (датчик пожарной сигнализации). Вы сможете поменять его на имя блока, с которым вы собираетесь работать в 2-ух операторах 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) )
В нашем примере во 2-ой и третьей строке установлены характеристики для включения вставленных блоков. По логике программы это происходит, ежели имя блока больше чем 13 знаков и 1-ые 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 точки вставки блока.
Имена атрибутов, упомянутые выше, также находятся в крайних 2-ух обрисованных функциях и должны быть изменены соответственно при необходимости.
Like this:
экспорт из autocad в excel
#1Тема от Михаил9 августа 2007г. 11:48:46
- Михаил
- Восстановленный участник
- На форуме с 9 августа 2007г.
- Сообщений: 6
- Спасибо: 0
Тема: экспорт из autocad в excel
Здравствуйте. Как экспортировать ИЗ autocad В excel?
#2Ответ от ШапКа9 августа 2007г. 12:12:07
- ШапКа
- Восстановленный участник
- На форуме с 9 августа 2007г.
- Сообщений: 2
- Спасибо: 0
Re: экспорт из autocad в excel
Здраствуйте, Михаил!Если вы желаете перегнать из автокада, к примеру, таблицу Спецификации. Клик по таблице правой клавишей-Экспорт-расширение *.csv. Таковой файл раскроется exel.
#3Ответ от Михаил9 августа 2007г. 12:49:44
- Михаил
- Восстановленный участник
- На форуме с 9 августа 2007г.
- Сообщений: 6
- Спасибо: 0
Re: экспорт из autocad в excel
А у меня такового нет. Ни через правую клавишу мыши, ни через меню экспорт. Такового расширения как *.csv нет. А мне вправду нужно перекатать спеку. Что делать??
#4Ответ от ШапКа9 августа 2007г. 13:23:59
- ШапКа
- Восстановленный участник
- На форуме с 9 августа 2007г.
- Сообщений: 2
- Спасибо: 0
Re: экспорт из autocad в excel
А как у вас начерчена спецификация, как таблица автокадовская либо просто линиями сами вычерчевали? Ежели просто линиями то не получится ничего.
#5Ответ от Михаил9 августа 2007г. 13:27:02
- Михаил
- Восстановленный участник
- На форуме с 9 августа 2007г.
- Сообщений: 6
- Спасибо: 0
Re: экспорт из autocad в excel
Линиями проектанты нарисовали. У меня 2007 автокад.
#6Ответ от kpblc9 августа 2007г. 14:23:42
- Откуда: С.-Петербург
- На форуме с 29 ноября 2004г.
- Сообщений: 8,347
- Спасибо: 23
Re: экспорт из autocad в excel
http://uniip.ru/ там в разделе download см.программу Alaspher по ввозу таблиц, нарисованных примитивами AutoCAD в Excel.
#7Ответ от Михаил9 августа 2007г. 20:11:24
- Михаил
- Восстановленный участник
- На форуме с 9 августа 2007г.
- Сообщений: 6
- Спасибо: 0
Re: экспорт из autocad в excel
uniip.ru — не работает этот веб-сайт. Может на мыло мне кинете прогу Alaspher — smv611@mail.ru
#8Ответ от kpblc9 августа 2007г. 20:34:10
- Откуда: С.-Петербург
- На форуме с 29 ноября 2004г.
- Сообщений: 8,347
- Спасибо: 23
Re: экспорт из autocad в excel
Если б она у меня была… Придется ожидать, пока веб-сайт заработает…
#9Ответ от Михаил3 сентября 2007г. 13:24:28
- Михаил
- Восстановленный участник
- На форуме с 9 августа 2007г.
- Сообщений: 6
- Спасибо: 0
Re: экспорт из autocad в excel
Здрасте все.
Нашёл я этот Alaspher. Но что то он у меня работает как-то "криво". Может ещё какие-либо проиги есть, либо ещё что посоветуете?
#10Ответ от kpblc3 сентября 2007г. 13:54:11
- Откуда: С.-Петербург
- На форуме с 29 ноября 2004г.
- Сообщений: 8,347
- Спасибо: 23
Re: экспорт из autocad в excel
BTW, Alaspher — это создатель программ (на том же веб-сайте внизу написано : Петр Лоскутов aka Alaspher 4;))
А что непосредственно "криво" работает? Лично я отыскал там лишь один глюк, и то не в лиспе задачи были (неверно работал при ACAD 2005 без SP, Office XP, MS Windows 2000 SP2). Такое сочетание еще придумать надо.
А с неуввязками лучше всего обращаться к создателю (ЯТД).
#11Ответ от Михаил3 сентября 2007г. 15:12:00
- Михаил
- Восстановленный участник
- На форуме с 9 августа 2007г.
- Сообщений: 6
- Спасибо: 0
Re: экспорт из autocad в excel
у меня белоснежный лист в экселе.
#12Ответ от skkkk18 июня 2008г. 02:44:56
- На форуме с 22 апреля 2008г.
- Сообщений: 31
- Спасибо: 0
Re: экспорт из autocad в excel
А может, кто знает, как экспортировать в excel просто тексты и мтексты, расположенные колонками, выделив сходу всю колонку, чтобы она встала в колонку excel по принципу ОДИН ТЕКСТ (или МТЕКСТ) — ОДНА ЯЧЕЙКА? Заблаговременно спасибо. И позже скажу))))
Сообщения 12
Тему читают: 1 гость
Страницы1
Чтобы выслать ответ, вы должны войти либо зарегистрироваться