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