라인이나 개체의 레이어로 현황에 코드를 써주는 리습인데 다른분은 되는데 저는 안돼네요
제가 cad2016을 쓰고있는데 그래서 안돼는 것같기도하고
고수님들 수정좀 부탁드리고 싶어서요.
————————————————————————————-
(defun c:CDI (/)
(setq TSize 0.3)
(setq CodeLayer “PCode”)
(setq CurLayer (getvar “CLAYER”))
(setq CurOsmod (getvar “OSMODE”))
(setq sel (ssget “X”))
(setq lengSel (sslength sel))
(setq count 0)
(repeat lengSel
(setq nameSel (ssname sel count))
(setq listObj (entget nameSel))
(setq nameObj (cdr (assoc 0 listObj)))
(cond ((= nameObj “INSERT”)
(setq nameCode (cdr (assoc 2 listObj)))
(setq pointText (cdr (assoc 10 listObj)))
(command “layer” “m” CodeLayer “”)
(setvar “OSMODE” 0)
(command “text” pointText TSize “0” nameCode)
(setvar “OSMODE” CurOsmod)
(setvar “CLAYER” CurLayer)
)
((= nameObj “LINE”)
(setq nameCode (cdr (assoc 8 listObj)))
(setq pointText (cdr (assoc 10 listObj)))
(command “layer” “m” CodeLayer “”)
(setvar “OSMODE” 0)
(command “text” pointText TSize “0” nameCode)
(setvar “OSMODE” CurOsmod)
(setvar “CLAYER” CurLayer)
(setq pointText (cdr (assoc 11 listObj)))
(command “layer” “m” CodeLayer “”)
(setvar “OSMODE” 0)
(command “text” pointText TSize “0” nameCode)
(setvar “OSMODE” CurOsmod)
(setvar “CLAYER” CurLayer)
)
((= nameObj “LWPOLYLINE”)
(setq nameCode (cdr (assoc 8 listObj)))
(setq listCoord (vl-remove-if-not ‘(lambda (a) (= (car a) 10)) listObj))
(command “layer” “m” CodeLayer “”)
(setvar “OSMODE” 0)
(setq listCoord (mapcar ‘(lambda (a) (command “text” (cdr a) TSize “0” nameCode)) listCoord))
(setvar “OSMODE” CurOsmod)
(setvar “CLAYER” CurLayer)
)
)
(setq count (1+ count))
)
)
(princ “n [ Command : CDI ]] “)
(princ)
두분 답변을 둘다 적용했어요 정말 정말 감사합니다