Blocks and Nested Blocks list to ssname.

Blocks and Nested Blocks list to ssname.

regisrohde
Advocate Advocate
857 Views
1 Reply
Message 1 of 2

Blocks and Nested Blocks list to ssname.

regisrohde
Advocate
Advocate

Hi

I need a list of ssname of all design blocks including nested. To check the list after separate XDATA condidos in blocks. Thanks.

 

 

(while ent (setq elst (entget ent))

(if (= (cdr (assoc 0 elst)) "INSERT")
(progn
(princ ent)
(verifyxdata); routine that checks for xdata

)
(princ "******************")

)
(setq ent (entnext ent))
)

Please mark this as the solution if it resolves your issue.Kudos gladly accepted.
Regis Rohde
0 Likes
Accepted solutions (1)
858 Views
1 Reply
Reply (1)
Message 2 of 2

regisrohde
Advocate
Advocate
Accepted solution

Modify a lisp code by _gile :

 

http://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/how-can-i-count-blocks-within-blocks/...

 

(defun nested-count (bname / blk ent elst cnt)
(setq blk (tblsearch "BLOCK" bname))
(setq cnt 0)
(setq ent (cdr (assoc -2 blk)))
(while ent
(setq elst (entget ent))
(if (= (cdr (assoc 0 elst)) "INSERT")
(progn
(MONTLIST)
(setq cnt (+ cnt 1 (nested-count (cdr (assoc 2 elst)))))
)
)
(setq ent (entnext ent))
)
cnt
)

(defun c:blk-count (/ ss cnt n ent)
(setq cnt 0 n -1)
(if (setq ss (ssget "_X" '((0 . "INSERT"))))
(progn
(setq cnt (sslength ss))
(while (setq ent (ssname ss (setq n (1+ n))))
(MONTLIST)
(setq cnt (+ cnt (nested-count (cdr (assoc 2 (entget ent))))))
)
)
)

)


(DEFUN MONTLIST ()
(SETQ MLISTS (cons ENT MLISTS))

)

 

tanks

Please mark this as the solution if it resolves your issue.Kudos gladly accepted.
Regis Rohde
0 Likes