This should give you what you want.
Code:
(defun c:NList (/ Sel EntList Data tempType NListString LayName tempLw tempClr)
(setq NListString "")
(if (setq Sel (nentsel "\n Select object to list properties of it, and of partent entities if nested: "))
(progn
(if (> (length Sel) 2)
(setq EntList (append (list (car Sel)) (last Sel)))
(setq EntList (list (car Sel)))
)
(foreach ent EntList
(if (equal (type ent) 'ENAME)
(progn
(setq Data (entget Ent))
(setq NListString
(strcat
NListString
"\n Entity type: "
(setq tempType (cdr (assoc 0 Data)))
(cond
(
(and
(= tempType "INSERT")
(/=
(cdr
(assoc
1
(entget
(tblobjname
"block"
(cdr
(assoc 2 Data)
)
)
)
)
)
""
)
)
(strcat
" [ Xref - "
(cdr (assoc 2 Data))
" ]"
)
)
((= tempType "INSERT")
(strcat
" [ "
(cdr (assoc 2 Data))
" ]"
)
)
(T "")
)
"\n Layer: "
(setq LayName (cdr (assoc 8 Data)))
"\n Linetype: "
(if (assoc 6 Data)
(cdr (assoc 6 Data))
(strcat
"ByLayer [ "
(cdr
(assoc
6
(entget
(tblobjname "layer" LayName)
)
)
)
" ]"
)
)
"\n Color: "
(if (assoc 62 Data)
(if (equal (setq tempClr (cdr (assoc 62 Data))) 0)
"ByBlock"
(itoa tempClr)
)
(strcat
"ByLayer [ "
(itoa
(cdr
(assoc
62
(entget
(tblobjname "layer" LayName)
)
)
)
)
" ]"
)
)
"\n Lineweight: "
(if (assoc 370 Data)
(progn
(setq tempLw (cdr (assoc 370 Data)))
(cond
((equal tempLw -3)
"Default"
)
((equal tempLw -2)
"ByBlock"
)
(t
(strcat (rtos (/ tempLw 100.) 2 2) " mm")
)
)
)
(progn
(setq tempLw
(cdr
(assoc
370
(entget
(tblobjname "layer" LayName)
)
)
)
)
(strcat
"ByLayer [ "
(if (equal tempLw -3)
"Default"
(strcat (rtos (/ tempLw 100.) 2 2) " mm")
)
" ]"
)
)
)
"\n"
)
)
)
)
)
(alert NListString)
)
)
(princ)
)