我将从一个块列表中获取.dwg文件中的自定义块,我将用Java编程解析这些块。
答案 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。来自jtbworld的axBlock
之类的内容。您也可以使用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中即可。你有几个选择:
axBlock.lsp
你刚刚创建了axBlock.lsp
拖到AutoCAD窗口上。通过脚本文件调用axBlock.lsp
。脚本什么都不是
真
但是一个扩展名为*.scr
的简单文本文件。为此你只是
需要这行代码在您的脚本文件中:
(load "C:\\axBlock.lsp")
执行上述三种方法中的任何一种方法后,只要在AutoCAD中键入axBlock
并点击Enter
,就会看到现有块的列表。
此外,如果您按照上面列表中的第3步进行操作,您可以创建一个快捷方式并在脚本文件中调用axBlock
,即您在一次点击中加载并调用该函数。如果您想这样做,只需在脚本代码的第二行添加axBlock
即可。请注意SPACE
axBlock