Использование VBA из Access 2007 для поиска в файлах AutoCAD (dwg) - PullRequest
4 голосов
/ 22 сентября 2011

У меня есть сотни файлов DWG, AutoCAD, которые я хотел бы найти и каталогизировать в базу данных MS Access.

По сути, я хотел бы найти DWG-файлы и извлечь любое описание в поле заголовка, а также дату и перенести все в Access, сделав его каталогом с возможностью поиска.

Например, у меня есть имя файла T-25682.DWG, которое называется Machine Spacer и создано 01/20/2010.

Я бы извлек эту информацию из файла DWG и вставил бы ее в базу данных Access следующим образом:

== ID ==    == DESCRIPTION ==    == CREATED ON ==    == FILENAME ==

    1       Machine Spacer       01/20/2010          T-25682.dwg

Как я могу подойти и решить эту проблему? Есть ли библиотека AutoCAD, которую я могу использовать с Access? Как я могу искать в файле DWG?

Ответы [ 2 ]

3 голосов
/ 21 октября 2011

Я бы вообще отказался от VBA, AutoLISP может выполнять эту работу с гораздо меньшими трудностями.Вот как это делается:

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

Как только вы сможетеЧтобы сделать это для отдельного файла DWG, создайте сценарий (используя все, что может копировать и открывать файлы, AutoLisp также работает), чтобы сделать следующее:

  1. Скопируйте этот файл LISP в каталог, где ваш DWGфайлы, называя файл как acaddoc.lsp.
  2. Последовательно открывайте каждую dwg в ​​каталоге.После открытия acaddoc.lsp запустится и выполнит свою работу.
  3. Удалите acaddoc.lsp из этого каталога (иначе он будет запускаться каждый раз, когда вы открываете там dwg).
  4. Повторять для каждогокаталог, в котором есть файлы DWG, в который вы хотите каталогизировать.

Примечания:

  1. Убедитесь, что acaddoc.lsp закрывает чертеж после его завершения (или заставляет AutoCAD завершать работу,в зависимости от того, как вы открываете файлы).
  2. Чтобы это работало, ваши заголовки должны быть надежными, убедитесь, что вы добавили проверку ошибок.Вы можете использовать сценарий для записи любых проблем в текстовый файл, когда они их найдут ...

AutoLisp действительно очень прост, для помощи в обучении перейдите к Учебники для начинающих AutoLISP .

Лучшее место для того, чтобы задавать вопросы и искать фрагменты кода из предыдущих ответов на вопросы, см. Visual LISP, AutoLISP и общая настройка .

1 голос
/ 23 сентября 2011

Если у вас есть полная версия AutoCAD, вы можете попробовать мастер извлечения данных.Это работает довольно хорошо для атрибутивных блоков.Если это не очень хорошо, лучше всего попробовать Swamp, форумы AutoCAD или AUGI.

VBA устарела в последних 3 версиях AutoCAD в пользу .NET API, FYI

+ edit + Посмотрите на эту (бесплатную) главу о подключении внешней базы данных AutoCAD.

...