0

我将从我将在 Java 中以编程方式解析的块列表中获取 .dwg 文件中的自定义块。

4

2 回答 2

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
于 2015-08-11T08:34:37.030 回答
0

我不熟悉,Core Console但要列出DWG文件中的所有块,您需要使用LISPs. axBlock来自jtbworld的东西。你也可以模拟 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")

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

此外,如果您遵循上面列表中的方法 3,您也可以axBlock在脚本文件中创建快捷方式并调用,即您可以一键加载和调用该函数。如果您想这样做,只需添加axBlock脚本代码的第二行。SPACE注意后面有一个额外的axBlock

于 2015-08-11T04:43:37.360 回答