我将从一个块列表中获得一个。dwg文件中的自定义块,我将在Java中以编程方式解析这些块。
您可以使用带有?
选项的INSERT命令cd C:Program FilesAutodeskAutoCAD 2016
accoreconsole.exe /i "SampleDatabase ConnectivityFloor 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
我不熟悉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中。你有几个选项:
- 在AutoCAD中使用APPLOAD命令浏览
axBlock.lsp
您刚刚创建了 - 将
axBlock.lsp
拖过AutoCAD窗口。 通过脚本文件调用
axBlock.lsp
。脚本什么都不是真的而是一个简单的文本文件,扩展名为*.scr
。所以你只要需要将这行代码放在脚本文件中:(load "C:\axBlock.lsp")
在完成上述三种方法中的任何一种后,只要在AutoCAD中输入axBlock
并点击Enter
,您将看到现有块的列表。
此外,如果您遵循方法1。从上面的列表中,你可以创建一个快捷方式,并在脚本文件中调用axBlock
,也就是说,你加载并调用函数一次点击。如果您想这样做,只需在脚本代码的第二行中添加axBlock
。注意,在axBlock
SPACE