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が、ファイル内のすべてのブロックを一覧表示するには、sDWGを使用する必要がありますLISPjtbworldのようなaxBlockもの。また、LISP コードをいじって、.SCRIPT


編集:

次のコードをコピーして貼り付け、ドライブのルートにNotepad保存します(たとえば)。axBlock.lspC

(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.lspAutoCAD ウィンドウにドラッグします。
  3. axBlock.lspスクリプト ファイル経由で呼び出します。スクリプトは、拡張子を持つ単純なテキスト ファイルにすぎません*.scr。そのためには、次のコード行をスクリプト ファイルに含める必要があります。

    (load "C:\\axBlock.lsp")

上記の 3 つの方法のいずれかを実行した後axBlock、AutoCAD に入力して を押すとEnter、既存のブロックのリストが表示されます。

さらに、上記のリストの方法 3 に従えば、ショートカットを作成しaxBlockてスクリプト ファイル内で呼び出すこともできます。つまり、関数を 1 回でロードして呼び出すことができます。そうしたい場合axBlockは、スクリプト コードの 2 行目に追加するだけです。余分なSPACE後に注意してくださいaxBlock

于 2015-08-11T04:43:37.360 に答える