如何在AutoCAD CORE控制台中列出.dwg文件的所有块的名称?

时间:2015-08-10 08:57:06

标签: autocad autocad-plugin dwg

我将从一个块列表中获取.dwg文件中的自定义块,我将用Java编程解析这些块。

2 个答案:

答案 0 :(得分:2)

您可以使用命令INSERT和选项?

cd C:\Program Files\Autodesk\AutoCAD 2016
accoreconsole.exe /i "Sample\Database Connectivity\Floor Plan Sample.dwg"
Command: _INSERT
Enter block name or [?]: ?

Enter block(s) to list <*>:

Defined blocks.
  "CHAIR7"
  "COMPUTER"
  "DESK2"
  "DESK3"
  "DOOR"
  "DR-36"
  "DR-69P"
  "DR-72P"
  "FC15X27A"
  "FC42X18D"
  "FNPHONE"
  "IBMAT"
  "KEYBOARD"
  "NCL-HL"
  "RECTANG"
  "RMNUM"
  "SOFA2"

User     Unnamed
Blocks   Blocks
   17        0

答案 1 :(得分:0)

我不熟悉Core Console但是要列出DWG文件中的所有块,您需要使用LISP s。来自jtbworldaxBlock之类的内容。您也可以使用LISP代码进行模拟,并通过SCRIPT进行调用。

编辑:

Notepad中复制并粘贴以下代码,并将其axBlock.lsp保存在C驱动器的根目录中(例如)

(defun c:axblocks (/ b bn tl)
  (vlax-for b (vla-get-blocks
                (vla-get-ActiveDocument (vlax-get-acad-object))
              )
    (if (= (vla-get-islayout b) :vlax-false)
      (setq tl (cons (vla-get-name b) tl))
    )
  )
  (reverse tl)
)

我只是稍微调整了jtbworld的代码,以便让你更轻松。

现在您已准备好LISP代码,只需将其加载到AutoCAD中即可。你有几个选择:

  1. 在AutoCAD中使用APPLOAD命令并浏览axBlock.lsp 你刚刚创建了
  2. axBlock.lsp拖到AutoCAD窗口上。
  3. 通过脚本文件调用axBlock.lsp。脚本什么都不是 真     但是一个扩展名为*.scr的简单文本文件。为此你只是     需要这行代码在您的脚本文件中:

    (load "C:\\axBlock.lsp")

  4. 执行上述三种方法中的任何一种方法后,只要在AutoCAD中键入axBlock并点击Enter,就会看到现有块的列表。

    此外,如果您按照上面列表中的第3步进行操作,您可以创建一个快捷方式并在脚本文件中调用axBlock,即您在一次点击中加载并调用该函数。如果您想这样做,只需在脚本代码的第二行添加axBlock即可。请注意SPACE

    后额外axBlock