Message 1 of 5
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
@hak_vz couple of modifications are required.
this lisp does not count blocks that are dynamic. for example, the block which is having visibility parameters, This Lisp count block which is having default visibility, if I change block visibility then it won't count.
In another case block having action parameters like stretch/move/rotation does not count in the field it shows "0".
Original post link :
Code :
(defun c:recount (/ block_list cnt env_name ss)
(setq block_list
(list
(cons 2 "S1")
(cons 2 "S2")
(cons 2 "S3")
(cons 2 "S4")
(cons 2 "S5")
(cons 2 "S6")
(cons 2 "S7")
(cons 2 "S8")
(cons 2 "S9")
(cons 2 "S10")
(cons 2 "S11")
(cons 2 "S13")
(cons 2 "S14")
(cons 2 "S15")
(cons 2 "S16")
(cons 2 "S17")
(cons 2 "S18")
(cons 2 "S19")
(cons 2 "S20")
(cons 2 "S21")
(cons 2 "NORMAL PUSH BUTTON")
(cons 2 "NORMAL PUSH BUTTON (W)")
(cons 2 "NORMAL PUSH BUTTON (FLAME PROOF)")
(cons 2 "DB")
(cons 2 "LDB")
(cons 2 "ELDB")
(cons 2 "SPDB")
(cons 2 "ESPDB")
(cons 2 "ESPDB")
(cons 2 "DB")
(cons 2 "JB")
(cons 2 "MODULE_PLATE")
)
)
(foreach i block_list
(if
(setq ss (ssget "X" (list (cons 0 "INSERT") (cons 410 "Model") i)))
(progn
(setq
cnt (itoa (sslength ss))
env_name (strcat "BLOCK_COUNT_" (cdr i))
)
(setenv env_name cnt)
(princ (strcat "\nSet " env_name " to " cnt))
)
(progn
(setq
cnt "0"
env_name (strcat "BLOCK_COUNT_" (cdr i))
)
(setenv env_name cnt)
(princ (strcat "\nSet " env_name " to " cnt))
)
)
)
(command "_REGEN") ;_refreshes field values
(princ)
)
Solved! Go to Solution.