AutoLisp计算图块的数量 (Calculating a block’s amount)

本文展示一个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)) 

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章