【问题标题】:How to list the names of all the blocks of a .dwg file in AutoCAD CORE console?如何在 AutoCAD CORE 控制台中列出 .dwg 文件的所有块的名称?
【发布时间】:2016-02-10 04:42:31
【问题描述】:

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

【问题讨论】:

  • 你有没有尝试过? Stack Overflow 不会为您编写程序。
  • 我认为答案类似于单行命令...例如“LISTALLBLOCK”或“GETALLBLOCKNAME”...感谢您指出 StackOverflow 并不能帮助我编写代码...
  • 为了更好地回答您的问题,至少在您的问题中添加I looked at the documentation [link to documentation here] and couldn't find a way to do this.
  • Java?不,除非您通过 COM 调用 AutoCAD 实例,但我认为核心控制台不能与 COM 一起使用,我从不打算找出答案。 C# - 是的,Lisp - 是的。但@Maxence 的答案在这种情况下是最简单的。

标签: autocad autocad-plugin dwg


【解决方案1】:

您可以将命令 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

【讨论】:

    【解决方案2】:

    我不熟悉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")

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

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

    【讨论】:

    • AutoCAD 在它的 CoreConsole 上没有太多功能......但是你能指出我如何在 SCRIPT 文件中运行 .lsp 脚本的正确方向吗??
    • @user3336544 阅读我编辑的答案。我添加了更多的描述。
    • 我在 3 号上做了所有事情,但控制台只是重新打印每一行并退出......这种方法对我来说是最有用的,但我无法让它工作......
    • @user3336544 我需要看一些屏幕截图才能进一步帮助您。
    • 原来 Visual Lisps 不能在核心控制台上运行.....最好的方法是调用一个脚本,该脚本在 acad.exe 上调用一个 lisp 例程......例如:acad。 exe C:\\ my_autocad_file.dwg /b call_attout_routine.scr
    猜你喜欢
    • 1970-01-01
    • 2015-10-30
    • 2015-11-30
    • 1970-01-01
    • 2020-04-26
    • 2015-05-23
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    相关资源
    最近更新 更多