图层按颜色转换为另一图层,请各位大大帮忙
现想要实现一个简单的图层转换命令 具体如下;原有图层AB第一步:新建图层CDEFGH(如图中有就不用建了,这步可有可无)
第二步: 图层A里面的红色变为图层C 图层A里面的黄色自动变为图层D 图层A里面的绿色变为图层E
第三步: 图层B里面的红色变为图层F 图层B里面的黄色自动变为图层G 图层B里面的绿色变为图层H
第四步:第五步:
等等,还有其他图层也一样要这么转换,可以不用考虑块里面的图层,块我都会炸开,还有就是不用自己选择图元,运行下命令就把设置好的图层都转换了。
希望高手能帮忙,谢谢
(Defun Clr2Lyr_B (x y / ss)
(if (setq ss (ssget "X" (list (cons 8 x) (cons 62 (car y)))))
(command "Chprop" ss"" "LA" (last y) "")
)
)
;;; cLst ==>'("A" (1 "C") (2 "D") (3 "E"))
(Defun Clr2Lyr_A (cLst)
(setq lyr (car cLst))
(foreach ele (cdr cLst)
(Clr2Lyr_B Lyr ele)
)
)
(Defun Clr2Lyr ()
;;; 第一步:新建图层CDEFGH(如图中有就不用建了,这步可有可无)
;;; 可直接安插 设定好图层的Dwg
(mapcar 'Clr2Lyr_A
(list
(list
"A"
(list 1 "C")
(list 2 "D")
(list 3 "E")
); '("A" (1 "C") (2 "D") (3 "E"))
(list
"B"
(list 1 "F")
(list 2 "G")
(list 3 "H")
)
;; 续加....
)
)
)
可以联系我QQ:496968041 本帖最后由 zzc83 于 2012-11-4 12:01 编辑
谢谢 Andyhon的帮忙 ,我运行图层转换的命令Clr2Lyr 显示未知命令,还有图层B其实是其他颜色(大概456颜色)转换成FGH. 本帖最后由 zzc83 于 2012-11-4 12:35 编辑
我是代码小白,只能边看论坛边摸索了。。。
11步 改了(Defun c:Clr2Lyr ()
第七步改了;;; cLst ("A" (1 "C") (2 "D") (3 "E"))
继续摸索图层B的456颜色。。。 还有图层B其实是其他颜色
您如此列举就如此对映喽
摊开来写就是方便您自行修改,那只是个雏型...
实务上还得加验证及错误处理,习惯上也会关闭命令行回应
这个有很多的范例,是以只关注必要的代码...
Command: (CLR2LYR) 试了,确实是123改成456就可以了,非常感谢Andyhon 帮我解决了问题
页:
[1]