프로그램
캐드 분류

치수선 색상을 일괄적으로 변경하는 리습을 만들고 싶습니다.

컨텐츠 정보

  • 11 조회
  • 8 댓글
  • 0 추천
  • 0 비추천
  • 목록

본문

치수선 색상 변경 리습을 챗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
이 문구가 뜨면서 중단이 됩니다.

17455580055831.png

전체 색상을 컬러코드 8번으로 변경하려고 하는데 가운데 치수선만 변경이 되지 않습니다.

관련자료

댓글 8 / 1 페이지

크레타님의 댓글

혹시 지시선(mleader)도 함께 같은 색으로 변경 할 수 있게 가능할까요? 구해주셨는데 보따리 내놓으라고 해서 죄송스럽네요…

캐드플러스님의 댓글

(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 명령어를 제대로 인식을 못하는듯 합니다.

전체 7,669 / 1 페이지
RSS
번호
제목
이름
알림 0