我将从我将在 Java 中以编程方式解析的块列表中获取 .dwg 文件中的自定义块。
问问题
8622 次
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
文件中的所有块,您需要使用LISP
s. 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 中。你有几个选择:
- 在 AutoCAD 中使用 APPLOAD 命令并浏览
axBlock.lsp
您刚刚创建的 - 拖动
axBlock.lsp
到您的 AutoCAD 窗口。 axBlock.lsp
通过脚本文件调用。脚本实际上只是一个带有*.scr
扩展名的简单文本文件。为此,您只需要将这行代码放在脚本文件中:(load "C:\\axBlock.lsp")
完成以上三种方法中的任何一种后,只要axBlock
在 AutoCAD 中键入并点击Enter
,就会看到现有块的列表。
此外,如果您遵循上面列表中的方法 3,您也可以axBlock
在脚本文件中创建快捷方式并调用,即您可以一键加载和调用该函数。如果您想这样做,只需添加axBlock
脚本代码的第二行。SPACE
注意后面有一个额外的axBlock
于 2015-08-11T04:43:37.360 回答