글쓴이가 . 글삭튀 하셔서 새로 올립니다.
(defun C:llist ( / osmo #po1 #po2 #po3 #tt x nlst nlstc ss sslen smember ssno #cont )
(setvar “cmdecho” 0)
(setq osmo (getvar “OSMODE”))
(setvar “OSMODE” 0) ; 오스냅 끄기
(setq #po1 (getpoint “n 검색 범위 설정 (1) “))
(setq #po2 (getcorner #po1 “n 검색 범위 설정 (2) “))
(setq #po3 (getpoint “n 텍스트 삽입 위치 “))
(setq #tt (getint “n텍스트 크기 : “))
(foreach x (mapcar ‘(lambda (x) (cdr (assoc 8 (entget x))))
(vl-remove-if ‘listp (mapcar ‘cadr (ssnamex (if (setq ss (ssget “a”)) ss (exit))))))
(if (not (member x nlst)) (setq nlst (cons x nlst)))
)
(setq nlst (vl-sort nlst ‘<))
(setq nlstc (vl-list-length nlst))
(repeat nlstc
(setq nlst2 (car nlst) nlst (vl-remove nlst2 nlst))
(setq ss (ssget “w” #po1 #po2 (list (cons 0 “LINE”))))
(setq sslen (sslength ss) ssno 0 #cont 0)
(repeat sslen
(setq smember (ssname ss ssno))
(setq #lay (cdr (assoc 8 (entget smember))))
(if (= nlst2 #lay)(setq #cont (1+ #cont)))
)
(setq ssno (1+ ssno))
)
(if (/= #cont 0)
(progn
(entmake (list ‘(0 . “MTEXT”) ‘(100 . “AcDbEntity”) ‘(100 . “AcDbMText”)
(cons 10 #po3) (cons 40 #tt)
(cons 1 (strcat “Layer””[” nlst2 “]” ” – “(rtos #cont 2 0) “개”))
(cons 7 (getvar “TEXTSTYLE”))))
(setq #po3 (polar #po3 (+ pi 1.5) (* (+ #tt(/ #tt 2))3)))
)))
(setvar “OSMODE” osmo)(princ)
)