안녕하세요.
구글링해서 아래와 같이 치수문자 간격을 조정하여 치수 문자에 사각테두리를 그려주는 리습 사용중입니다.
여기에 추가로 치수선 색상을 변경해보려하는데 에러만 발생하고 적용하기 어렵네요.
치수선 색상을 빨간색으로 변경하는 내용을 추가 할 수 있나요?
(defun c:sd ( / sel a obj)
(if (ssget “_:L” ‘((0 . “DIMENSION”)))
(progn
(vlax-for obj
(setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object))))
(setq a (- 0.5))
(if (= acunder (vla-get-TextGap obj))
(vla-put-TextGap obj a)
(vla-put-TextGap obj a)
)
)
(vla-delete sel)
)
)
(princ)
)
(vl-load-com) (princ)
(vl-load-com)
(defun c:TEST (/ dim_text_color_1 ss p n sel)
(prompt “n—>>>치수박스 및 보조선 색상변경<<—:")
(setq dim_text_color_1 1)
(setq dim_text_color dim_text_color_1)
(prompt “n>>>☞ 치수 선택:”)
(setq ss (ssget ‘((0 . “DIMENSION,LEADER”))))
(if ss
(progn
(setq p 0)
(while (ssname ss p)
(setq n (ssname ss p)
p (+ 1 p)
a (vlax-ename->vla-object n)
)
(vla-put-Color a dim_text_color)
(vla-put-ExtensionLineColor a dim_text_color)
(vla-put-DimensionLineColor a dim_text_color)
;; (vla-put-textcolor a dim_text_color);;;치수문자 색상변경시 “;;” 지움
(vlax-for obj
(setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object))))
(setq a (- 0.5))
(if (= acunder (vla-get-TextGap obj))
(vla-put-TextGap obj a)
(vla-put-TextGap obj a)
)
)
)
(vla-delete sel)
)
)
(princ)
)
잘됩니다.
감사합니다.
그런데 제가 내용을 제대로 안적었군요.
수정해주시면 색상만 제가 수정하면 될거라 여겼는데 에러가 나서 추가 도움 요청드립니다.
목적이 특정 치수만 플롯스타일 무시하고 컬러로 보이게 트루컬러를 넣는 거였습니다.
c65791 나 255,0,1과 같이 트루 컬러 코드를 넣을수 있습니까?
수정을 시도해보았는데 숫자 색인코드만 인식하는거 같아서요.
트루컬러를 넣으면에러가 발생하는데 한번 더 도움 주실수 있을까요?
트루컬러는 다른 고수분들께 ………..패스
덕분에 해결 했습니다.
감사합니다.
생각을 바꾸니 조금 수월해지네요.
색상코드를 256을 넣으면 bylayer로 설정되니까
bylayer로 변경하고
레이어를 생성해서 변경시켜버리니 쉽게 해결되는군요.
그냥 짜집기한거라 조금 지저분하긴한데 일단 동작은 되네요.
(vl-load-com)
(defun c:sd (/ dim_text_color_1 ss p n sel)
(prompt “n—>>>치수박스 및 보조선 색상변경<>>☞ 치수 선택:”)
(setq ss (ssget ‘((0 . “DIMENSION,LEADER”))))
(if ss
(progn
(setq p 0)
(while (ssname ss p)
(setq n (ssname ss p)
p (+ 1 p)
a (vlax-ename->vla-object n)
)
(vla-put-Color a dim_text_color)
(vla-put-ExtensionLineColor a dim_text_color)
(vla-put-DimensionLineColor a dim_text_color)
(if (= (tblsearch “layer” “Section_Dim”) nil)
(command “-layer” “m” “Section_Dim” “c” “t” “255,0,0” “” “lt” “continous” “” )) ; 입력받은 레이어가 없으면 만든다
(command “-layer” “s” “Section_Dim” “c” “t” “255,0,0” “” “lt” “continous” “”) ; 입력받은 레이어 설정 변경
;(princ ” 선택 항목을 번 레이어 설정으로 변경합니다. “)
(command “CHANGE” ss “” “P” “C” “ByLayer” “lt” “ByLayer” “la” “Section_Dim” “”)
(command “layer” “S” “0” “”) ; 0번 layer를 현재로 변경
;; (vla-put-textcolor a dim_text_color);;;치수문자 색상변경시 “;;” 지움
(vlax-for obj
(setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object))))
(setq a (- 0.5))
(if (= acunder (vla-get-TextGap obj))
(vla-put-TextGap obj a)
(vla-put-TextGap obj a)
)
)
)
(vla-delete sel)
)
)
(princ)
)
제가 오토캐드가 아닌 zwcad라서 그런지
트루컬러부분 리습 만들면 애러가 발생해요…오토캐드랑 뭔가 다른가봐요. 아무튼 된다니 감축드립니다….