【AutoCAD】ブロックの数を集計する便利ツール

小学校、官庁物件など、比較的大き目の物件は同じ型番の照明をたくさん使う。配置作業自体は配列複写ツールを使う事で効率化できるが、そのあと待っているのは積算作業。

何百個とある集計作業は心が折れそうになるので、少しでも楽に数えられるツールを作成しようと思った。LISPというAUTOCAD専用のツールをChat GPTで作成した。自画自賛になるが、非常に使いやすく便利なツールが出来たと思う。
【使い方】
①管理タブのアプリロードをクリック

②ダウンロードしたファイルをロード

③コマンドラインでCOUNTBLOCKSを入力

④選択したい範囲すべてを選択

⑤数えたいブロックを選択
⑥同じブロックが集計され、数がコマンドラインに表示される
【ツール】下記のテキストをメモ帳に貼り付けて拡張子を.LSPで保存して使用ください。
(defun c:CountBlocks ()
(setq ss (ssget)) ; ユーザーに要素を選択させる
(if ss
(progn
(princ “\nカウントするブロックを1つ選択してください: “)
(setq blkEnt (car (entsel)))
(if blkEnt
(progn
(setq blkData (entget blkEnt))
(if (equal (cdr (assoc 0 blkData)) “INSERT”)
(progn
(setq blkName (cdr (assoc 2 blkData)))
(setq count 0 i 0 highlightSS (ssadd))
(while (< i (sslength ss)) (setq ent (ssname ss i)) (setq entData (entget ent)) (if (and (equal (cdr (assoc 0 entData)) “INSERT”) (equal (cdr (assoc 2 entData)) blkName)) (progn (setq count (1+ count)) (ssadd ent highlightSS) ) ) (setq i (1+ i)) ) (if (> count 0)
(progn
(sssetfirst nil highlightSS) ; ハイライト表示
(princ (strcat “\nブロック ” blkName ” の数: ” (itoa count)))
)
(princ “\n指定したブロックは選択範囲内に存在しません。”)
)
)
(princ “\n選択した要素はブロックではありません。”)
)
)
(princ “\nブロックの選択がキャンセルされました。”)
)
)
(princ “\n選択がキャンセルされました。”)
)
(princ)
)