啵浪鼓 发表于 2022-8-1 11:27:55

如何获得图层真彩色

目前图层为真彩色255,255,255,使用vla-gei-color和tblobjname获得的是7号色

自贡黄明儒 发表于 2022-8-1 11:51:26

highflybird大师写的
;;;下面的是几个简单的颜色函数
;;;==========================
;;;把truecolordlg            
;;;420构成的数值返回RGB列表
;;;==========================
(defun Number->RGB (color)
(list        (lsh color -16)
        (lsh (lsh color 16) -24)
        (lsh (lsh color 24) -24)
)
)
;;;==========================
;;;把truecolordlg            
;;;420构成的数值返回RGB列表.
;;;==========================
(defun RGB->Number (R G B)
(+ (lsh R 16) (lsh G 8) B)
)

;;;==========================
;;;RGB转化成索引号         
;;;==========================
(defun RGB->Index (ColorObj r g b /)
(if (and (equal 0 r 10) (equal 0 g 10) (equal 0 b 10))
    0
    (progn
      (vla-setRGB ColorObj r g b)
      (vla-get-ColorIndex ColorObj)
    )
)
)

;;;==========================
;;;索引号转化成RGB         
;;;==========================
(defun Index->RGB (ColorObj ci /)
(vla-put-ColorIndex ColorObj ci)
(list        (vla-get-red ColorObj)
        (vla-get-green ColorObj)
        (vla-get-blue ColorObj)
)
)

lijiao 发表于 2022-8-1 16:57:13

;;;lay是已经获取的layer对象
(setq cor (vla-get-TrueColor lay))    ;;;获取真彩对象
(setq Blue_cor (vla-get-Blue cor))    ;;;蓝色
(setq Green_cor (vla-get-Green cor));;;绿色
(setq Red_cor (vla-get-Red cor))      ;;;红色

llsheng_73 发表于 2022-8-1 20:09:43

本帖最后由 llsheng_73 于 2022-8-1 20:23 编辑

直接获取
(setq Tcolor(vlax-get-property(vlax-invoke-method *layers 'item"0")'TrueColor))
(mapcar'(lambda(x)(vlax-get-property Tcolor x))'(Red Green Blue))



页: [1]
查看完整版本: 如何获得图层真彩色