치수선 색상 변경 리습을 챗gpt를 이용해서 짰는데 가운데 치수선 부분의 색상이 변경되질 않고 에러코드를 출력합니다.
이걸 해결할수 있는 방법이 있는지 도움을 요청드립니다.
(defun c:CDC ( / ss dimObj colorCode i)
;; 사용자로부터 변경할 색상 번호 입력
(setq colorCode (getint “n변경할 색상 번호를 입력하세요 (1~255): “))
(if (and colorCode (>= colorCode 1) (<= colorCode 255)) ; 색상 번호 유효성 검사
(progn
;; 사용자에게 치수 객체 선택 요청
(prompt “n색상을 변경할 치수를 선택하세요.”)
(setq ss (ssget ‘((0 . “DIMENSION”)))) ; 치수 객체만 선택
(if ss
(progn
(setq i 0)
(repeat (sslength ss)
(setq dimObj (vlax-ename->vla-object (ssname ss i)))
;; 치수 객체의 색상 오버라이드 설정
(vla-put-color dimObj colorCode) ; 객체 자체 색상 변경
(vla-put-ExtensionLineColor dimObj colorCode) ; 보조선 색상 변경
(vla-put-TextColor dimObj colorCode) ; 문자 색상 변경
;; DimStyleOverride로 치수선 색상 변경
(vla-put-Override dimObj “DIMCLRD” colorCode)
(setq i (1+ i))
)
(princ “n선택한 치수의 색상이 성공적으로 변경되었습니다.”)
)
(princ “n선택된 치수 객체가 없습니다.”)
)
)
(princ “n유효한 색상 번호를 입력하세요 (1~255).”)
)
(princ)
)
해당 코드로 리습을 만들면 에러코드가 뜨는데
객체 선택: ; 오류: no function definition: VLA-PUT-OVERRIDE
이 문구가 뜨면서 중단이 됩니다.
전체 색상을 컬러코드 8번으로 변경하려고 하는데 가운데 치수선만 변경이 되지 않습니다.
보냈어요 ………..메일 확인하세요
감사합니다, 잘 쓰겠습니다~
(defun c:CDC ( / ss dimObj colorCode def_colorCode i)
;; 사용자로부터 변경할 색상 번호 입력
(if (= nil def_colorCode) (setq def_colorCode 1))
(if (= (setq colorCode (acad_colordlg def_colorCode)) nil) (setq colorCode def_colorCode) (setq def_colorCode colorCode))
(progn
;; 사용자에게 치수 객체 선택 요청
;(prompt “n색상을 변경할 치수를 선하세요.”)
(setq ss (ssget ‘((0 . “DIMENSION”)))) ;;;;;;;;;;;;; ‘ ” 수정할것.
(if ss
(progn
(setq i 0)
(repeat (sslength ss)
(setq dimObj (vlax-ename->vla-object (ssname ss i)))
;; 치수 객체의 색상 오버라이드 설정
(vla-put-color dimObj colorCode) ; 객체 자체 색상 변경
(vla-put-ExtensionLineColor dimObj colorCode) ; 보조선 색상 변경
(vla-put-TextColor dimObj colorCode) ; 문자 색상 변경
;; DimStyleOverride로 치수선 색상 변경
;(vla-put-Override dimObj “DIMCLRD” colorCode) ;;;; vla-put-Overrid ????????????????????
(setq i (1+ i))
)
;(princ “n선택한 치수의 색상이 성공적으로 변경되었습니다.”)
)
;(princ “n선택된 치수 객체가 없습니다.”)
)
)
;(princ “n유효한 색상 번호를 입력하세요 (1~255).”)
)
(princ)
)
저도 리습 만드는 명령어를 공부한적이 없어서 챗gpt로 원하는 기능을 얘기했떠니 저렇게 코드를 주더라구요.
데이터가 없어서 그런지 lisp 명령어를 제대로 인식을 못하는듯 합니다.
복사 붙혀넣기 오류나네요…매일주소
혹시 지시선(mleader)도 함께 같은 색으로 변경 할 수 있게 가능할까요?
구해주셨는데 보따리 내놓으라고 해서 죄송스럽네요…
메일 받아서 적용 시켰는데 잘 작동 합니다.
정말 감사합니다~
blitzno9@naver.com 입니다.
감사합니다!