AutoCAD LISP 將物件設定RGB色碼的顏色(True Color)
想要設定超出原有的256色時就需要設定RGB色碼。
方法1:修改群組碼420
;;;將RGB碼轉成群組碼420數值
;;;作者:許昱凱
;;;時間:2022/012/19
(defun k:RGB2ass420 ( rgbnum / )
(+ (* (car rgbnum) 256 256)
(* (cadr rgbnum) 256)
(caddr rgbnum))
);_end
(defun c:tt ( / obj rgb ass420 )
(setq obj (entget(car(entsel))))
(setq rgb '(50 200 50)
ass420 (k:RGB2ass420 rgb))
(if (assoc 420 obj)
(setq obj
(subst (cons 420 ass420)
(assoc 420 obj)
obj))
(setq obj
(append
obj
(list (cons 420 ass420))))
) ;_if
(entmod obj)
(princ)
);_end
方法2:使用 vla 函數
;;;設定物件RGB碼
;;;作者:許昱凱
;;;時間:2022/012/19
(defun K:ChangeTrueColor ( vla-obj color / tru )
(if (listp color)
(progn
(setq tru (vla-get-truecolor vla-obj))
(apply 'vla-setrgb (cons tru color)) ;輸入自訂的RGB色碼 True Color
(vla-put-truecolor vla-obj tru)
);_progn
(vla-put-color lay color)
);_if
);_end
(defun c:tt2 ( / obj tru )
(setq obj (vlax-ename->vla-object (car(entsel))))
(K:ChangeTrueColor '(5 155 2)) ;輸入自訂的RGB色碼 True Color
(princ)
);_end
留言
張貼留言