本文展示一个AutoLISP副程式,计算图块在画面的数量。
用法:
步骤1. 将其加入一个Lisp程式档内,假设程式名为 aa.lsp。
步骤2. 下载程式,Command: (load “aa")
步骤 3. 执行副程式指令,如要计算画面上有几个名为’A4’的图块的数量,执行 Command: (blk_count “A4″) ,即得出数量。若在程式内执行,即 (setq n (blk_count “A4″)),变数 n 即为’A4’图块的数量。
(原文出自)
程式码:
(defun blk_count (blkn / ss1 n m tol a blkname) (setq ss1 (entss (ssget "x") "insert") '蒐集所有insert类图元,就是图块(block) tol 0 ) (if ss1 (progn (setq n (sslength ss1) m 0 ) (repeat n '逐一取出图块 (setq a (ssname ss1 m) blkname (ent_code 2 (entget a)) ) (if (= (strcase blkname) (strcase blkn)) '比对图块名字 (setq tol (+ 1 tol)) '累加数量 ) (setq m (+ 1 m)) ))) (princ tol))