여러글자 선택후 수정하는 리습인데
2009에서 사용할때 잘 되다가 2011쓰려니 안되더라구요!
오류: no function definition: ACET-ERROR-INIT
이런 메세지가 뜹니다.
(defun C:rtext (/ noll filter ss idx ename elist kind)
;; remove objects on locked layers from ss
(defun noll (ss / i d ename)
(setq i 0
d 0 )
(while (and ss
(setq ename (ssname ss i)) )
(if (acet-layer-locked (cdr (assoc 8 (entget ename))))
(progn
(ssdel ename ss)
(setq d (1+ d))
)
(setq i (1+ i))
)
)
(if (/= 0 d)
(princ (acet-str-format “%1 %2 on a locked layer.n”
d
(if (< 1 d) “were” “was”) ) )
)
ss
)
(acet-error-init ‘((“CMDECHO” 0) T))
;; make object filter
(setq filter (list
(cons 410 (if (and (= 0 (getvar “TILEMODE”))
(/= 1 (getvar “CVPORT”)) )
“Model”
(getvar “CTAB”) ) )
‘(-4 . “<OR”)
‘(0 . “TEXT,MTEXT,RTEXT,ARCALIGNEDTEXT,DIMENSION,ATTDEF”)
‘(-4 . “<AND”)
‘(0 . “INSERT”)
‘(66 . 1)
‘(-4 . “AND>”)
‘(-4 . “OR>”) ) )
;; pick objects
(if (not (and (= 1 (logand 1 (getvar “PICKFIRST”)))
(setq ss (noll (ssget “_I” filter))) ) )
(setq ss (ssget “_:L” filter))
)
;; process ss
(if ss
(progn
(setq idx -1)
(acet-ui-progress “Editing:” (sslength ss))
(sssetfirst)
(redraw)
(while (setq ename (ssname ss (setq idx (1+ idx))))
(redraw ename 3)
(redraw)
(setq elist (entget ename)
kind (cdr (assoc 0 elist)) )
(cond
((or (= kind “TEXT”)
(= kind “MTEXT”)
(= kind “DIMENSION”)
(= kind “ATTDEF”) )
(command “_.DDEDIT” ename “”) )
((= kind “INSERT”)
(command “_.DDATTE” ename) )
((= kind “ARCALIGNEDTEXT”)
(command “_.ARCTEXT” ename) )
((= kind “RTEXT”)
(if (or (= ‘USUBR AcetRText:edit) (load “rtext” nil))
(AcetRText:edit elist)
(princ “TEDIT: Cannot edit RTEXT objects.n”)
)
)
)
(entupd ename)
(redraw ename 4)
(acet-ui-progress -1)
)
(acet-ui-progress)
(sssetfirst nil ss)
)
)
(acet-error-restore)
(princ)
)
어디를 수정해야 될까요?
아키라Lv.0
no function definition
공유