안녕하세요.
블럭 이름 변경하는 리습을 인터넷에서 다운받아 사용중입니다.
rb.lisp 라는 리습인데 한 두번 사용할때는 에러가 없다가
명령:RB
이름을 바꿀 블록을 선택하세요.
선택한 블록의 새 이름을 입력하세요 : 4D11-G
; 오류: 인수 유형 오류: lentityp nil
위와 같이 인수 유형 오류라면서 작동이 안됩니다. 다시 캐드파일을 열고서
실행하면 한 두번은 잘 됩니다.
어떤 부분이 잘못된건지 알려주시면 정말 정말 감사하겠습니다.
남은 2022년 잘 마무리 하시기 바랍니다.
글 읽어 주셔서 감사합니다.
(defun c:rb(/ ent bname rebname elist)
(setq ent (car (entsel “n이름을 바꿀 블록을 선택하세요.”)))
(while
(/= “INSERT” (cdr (assoc 0 (entget ent))))
(setq ent (car (entsel “n블록이 아닙니다. 다시 선택하세요.”)))
)
(setq bname (getstring T “n선택한 블록의 새 이름을 입력하세요 : “));getstring 뒤에 T를 입력해야 Spacebar의 입력을 받을 수 있습니다.
(while
(tblsearch “block” bname)
(progn
;(alert (strcat “입력한 ” bname “은 이미 사용 중입니다.”));alert를 사용하면, 경고메세지가 팝업 창으로 나타납니다.
(setq rebname (strcat “입력한 ” bname “은 이미 사용 중입니다. 다시 입력하세요. : “))
(setq bname (getstring T rebname))
)
)
(setq elist (entget (cdr (assoc 330 (entget (tblobjname “block” (cdr (assoc 2 (entget ent)))))))))
(entmod (subst (cons 2 bname) (assoc 2 elist) elist))
(princ)
)
https://cafe.naver.com/autocats/2140
CATS 에 블록 이름 바꾸는 기능이 있습니다 🙂
참고해보세요~