블럭 색상 한번에 변경하는 lisp인데 갑자기 이러한 에러 메시지가 뜨는데
코딩 에러인지 한번 봐주세요
Error: no function definition: VLAX-GET-ACAD-OBJECT <<이렇게 에러 메시지가 뜹니다.
Lisp 코딩은 이러합니다.
(defun c:cxx ( / oDocument change:colorinblock Sset objList ci)
(setq oDocument (vla-get-activedocument (vlax-get-acad-object)))
(defun change:colorinblock ( BlockName Color oDocument )
(vlax-for obj (vla-item (vla-get-blocks oDocument) BlockName)
(vla-put-color obj Color)
(if (eq (vla-get-objectname obj) “AcDbBlockReference”)
(progn
(foreach Att (vlax-invoke obj ‘getattributes) (vla-put-color Att Color))
(change:colorinblock (vla-get-name obj) Color oDocument)
)
)
)
)
(vla-startundomark oDocument)
(and
(setq ci (getint “n바꿀 색상을 입력하세요 … : “))
(princ (strcat “n선택한 객체의 색상을” (itoa ci) ” 번으로 변경합니다 …”))
(setq Sset (ssget))
(setq objList (mapcar ‘vlax-ename->vla-object (vl-remove-if ‘listp (mapcar ‘cadr (ssnamex Sset)))))
(foreach obj objList
(vla-put-color obj ci)
(if (eq (vla-get-objectname obj) “AcDbBlockReference”)
(progn
(foreach Att (vlax-invoke obj ‘getattributes) (vla-put-color Att ci))
(change:colorinblock (vla-get-name obj) ci oDocument)
)
)
(if (eq (cdr (assoc 0 (entget (vlax-vla-object->ename obj)))) “DIMENSION”)
(progn
(vl-catch-all-apply ‘vla-put-textcolor (list obj ci))
(vl-catch-all-apply ‘vla-put-dimensionlinecolor (list obj ci))
(vl-catch-all-apply ‘vla-put-extensionlinecolor (list obj ci))
)
)
)
)
(vla-endundomark oDocument)
(princ)
)
리습 앞이나 끝부분에
수정하였더니 실행돼요~
감사합니다:-)
고맙습니다. 유용하게 사용할게요~
색상번호 말고 bylayer로는 바꿀 수 없나요?
색상 번호 입력만 되는 듯 해서요
저는 2014버전인데 오류가 뜹니다.
오류: ActiveX Server에서 오류를 반환함: 유형 라이브러리/DLL 로드 오류입니다
혹시 원인을 아시는분 부탁드립니다.