【问题标题】:Using VBA from Access 2007 to search in AutoCAD (dwg) files使用 Access 2007 中的 VBA 在 AutoCAD (dwg) 文件中进行搜索
【发布时间】:2011-11-22 23:30:52
【问题描述】:

我有数百个 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

我该如何处理和解决这个问题?是否有可以与 Access 一起使用的 AutoCAD 库?如何在 DWG 文件中进行搜索?

【问题讨论】:

  • 显然你可以得到VBA modules for Autocad,它应该允许自动化,除非你想看看.Net
  • 据我了解,这更多的是允许您从 AutoCAD 中运行 VBA 宏。我只是在研究使用宏读取 AutoCAD 文件,就像一个简单的 .txt 文件一样。
  • 例如,当我用 Word 打开文件时,所有内容都以我无法读取的字符编码。有没有办法阅读那里的内容或搜索并找到它
  • 我的看法是,如果你有合适的库,你可以在 Access VBA 中引用它们,并使用它从我所做的小谷歌搜索中读取相关的文件属性,包括标题关于这个主题。
  • 与在 Access 中引用 Word 库的方式相同,您可以创建一个 Word 应用程序对象并使用通过该对象可用的所有属性和方法。

标签: ms-access vba autocad


【解决方案1】:

我会完全避免使用 VBA,AutoLISP 可以轻松地完成这项工作。方法如下:

在 AutoLISP 文件中创建“数据提取和写入 Access”功能。免费提供的 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 Beginners' Tutorials

有关提问和从以前回答的问题中搜索代码 sn-ps 的最佳位置,请参阅Visual LISP, AutoLISP and General Customization

【讨论】:

    【解决方案2】:

    如果您有完整版的 AutoCAD,您可以尝试数据提取向导。这对于属性块非常有效。如果这不好,最好的尝试是 Swamp 或 AutoCAD 论坛或 AUGI。

    在 AutoCAD 的最后 3 个版本中不推荐使用 VBA,以支持 .NET API,仅供参考

    +编辑+ 看看这个(free) chapter on AutoCAD external database connectivity

    【讨论】:

    • 数据提取向导,如果它有效,那么将一个巨大的文件库编入目录将是耗时的。据我了解,我必须一次打开一个并使用该工具。我不是在 AutoCAD 中寻找任何东西。我正在寻找一种使用 ACCESS/VBA 从 DWG 文件中提取信息的方法。感谢您的帮助!
    • 您可以选择文件集合并保存该集合,以及提取的参数。您需要 AutoCAD 或 AutoCAD API 版本来读取 DWG 文件。它们是专有格式并已加密。 Access 没有本地方式来访问 (harhar) AutoCAD 图形。您需要基于 AutoCAD REAL DWG 或 ODA API 编写应用程序,或者购买现有的应用程序。即使安装了 AutoCAD,任何使用它的应用程序都必须在 AutoCAD 进程中运行 - 这是该库的限制。
    • 实际上,我不太正确(即错误)- ActiveX 可能会耗尽进程。请参阅docs.autodesk.com/ACD/2010/ENU/… 被警告 - 它速度很慢,而且它也正在被弃用以支持 .NET。这可能会有所帮助:usa.autodesk.com/adsk/servlet/…
    猜你喜欢
    • 2021-02-03
    • 1970-01-01
    • 2020-02-15
    • 2015-10-30
    • 1970-01-01
    • 2016-10-23
    • 2012-03-11
    • 1970-01-01
    相关资源
    最近更新 更多