+CADLabo.comCAD / LISP / AUTOMATION
実務LISP・自動化

選択したオブジェクトの数を集計するLISP

結論

CR_COUNTで選択した図形の数を表示します。ブロックの内部要素ではなく、選択セットの図形を数えます。

こんな人向け

図形数を手作業で数えている方。選択セットの仕組みを学びたい方。

基本を理解する

使用前:図形を指で追って数えています。使用後:必要な範囲を選択し、結果の数字を確認します。ブロック1個は通常1つとして数え、内部の線や属性を個別に数えるツールではありません。図形の種類ごとの内訳も出しません。選んだ範囲が正しいかを人が確認する用途です。

操作手順

  1. 練習図面へ線3本とブロック1個を用意します。
  2. コードを読み込み、CR_COUNTを実行します。
  3. 4つの図形を選び、Enterで確定します。
  4. Count: 4と出るか確認し、何も選ばない場合も試します。

実際の例

配置した部品をすべてブロックとして整理していれば、対象を選んで個数を確認する補助になります。線と文字も一緒に選ぶと、それらも数えるので対象を区別してください。

実務で試す:線分とブロックで数え方を比較する

この例が数えるのは選択セットの図形数です。ブロック内部の線の本数とは違います。

  1. LINEを3本用意し、その3本だけを選んで実行します。
  2. 複数の線を含むブロック参照を1個選び、表示される数を確認します。
  3. 何も選ばずに確定した場合の表示も確認します。

結果の確認ポイント

線3本なら3、ブロック参照1個なら1という数え方を想定しています。数量表に使う前に、何を1個と数える業務なのかを決めてください。

学習用の例です。まずコピーした図面で試し、現在の設定を控えてください。CAD実機での検証は未実施です。

コード

cad-rescue-count.lsp
; CAD Rescue - selected top-level objects
(defun c:CR_COUNT (/ ss)
  (setq ss (ssget))
  (if ss
    (progn
      (princ "\nCount: ")
      (princ (sslength ss))
    )
    (princ "\nNothing selected.")
  )
  (princ)
)

.lspファイルをダウンロード 無料・実機未検証

この1行は何をしている?

  1. 1行目:処理の目的を記したコメントです。
  2. 2行目:CR_COUNTを定義し、ssを処理内だけの変数にします。
  3. 3行目:ssgetで対話的に図形を選択してもらい、その結果をssに記憶します。
  4. 4行目:選択結果があるかをifで確認します。
  5. 5行目:prognで複数の表示処理をひとまとまりにします。
  6. 6行目:改行してCount:と表示します。
  7. 7行目:sslengthで選択セットの個数を取得し、princでその数を表示します。
  8. 8行目:prognを閉じます。
  9. 9行目:選択がない場合はNothing selected.と表示します。
  10. 10行目:ifを閉じます。
  11. 11行目:終了時の余分な表示を抑えます。
  12. 12行目:コマンドの定義を閉じます。

インストール・実行方法

  1. .lspファイルをダウンロードし、テキストエディタで内容を確認します。
  2. 練習用のDWGを開き、APPLOADからファイルを読み込みます。許可された信頼できるフォルダを使い、セキュリティ設定を無効にしないでください。
  3. コマンド欄に CR_COUNT と入力し、画面の指示に従います。
  4. 既知の図形数と結果を照合します。ブロック内部の線の本数と取り違えないでください。

カスタマイズ方法

Count:やNothing selected.の表示文を変えられます。日本語化する場合は保存時の文字コードと利用環境を確認します。図形種類を絞る改変にはssgetのフィルタを学びます。

対応CAD・動作確認バージョン

CAD仕様上の対応条件このコードの実機確認
AutoCADAutoLISP対応版未実施
AutoCAD LTWindows版2024以降(機能制限あり)未実施
BricsCAD製品・版・関数ごとに要確認未実施
DraftSight製品・版・関数ごとに要確認未実施
IJCAD製品・版・関数ごとに要確認未実施

LISP言語に対応していても、同じコードの動作を保証するものではありません。Mac版LTは上記Windows版の条件に含みません。

よくある失敗

実機未検証のコードです。積算や発注の確定数量として無検査で利用しないでください。Escで中断するとキャンセルのメッセージが出る場合があります。無償で利用・改変できます。

それでも解決しない場合

0件ではなく未選択として扱われる場合があります。範囲に何が含まれるかを拡大して確認し、練習図面で再現してください。

公式資料・確認範囲

資料確認:2026年10月4日。操作は主に AutoCAD / AutoCAD LTのデスクトップ版(Windows) を想定。資料の対象年はリンクに記載しています。画面や選択肢はバージョンで異なる場合があります。 掲載コードのCAD実機テストは未実施です。