求新建图层, 改为当层,并自动改图层颜色
求新建图层, 改为当层,并自动改图层颜色本帖最后由 lyqiezi 于 2014-12-15 20:51 编辑
(defun c:newlaynewcor()
(setq lay_name (getstring "\n输入要新建的图层名称:"))
(if (tblsearch "LAYER"lay_name)
(princ "\n该图层已存在!")
(progn
(setq lay_cor (abs (cdr(assoc 62 (tblnext"layer" t)))))
(setq cor_list nil)
(while lay_cor
(setq cor_list (vl-list* lay_cor cor_list))
(if (setq lay_cor (cdr (assoc 62 (tblnext"layer"))))
(setq lay_cor (abs lay_cor)))
)
(setq cor 1)
(while (member cor cor_list)
(setq cor (1+ cor))
)
(if (> cor 255)
(progn
(princ "\n您的图层颜色过多,已按255色建层")
(setq cor 255)))
(entmake (list '(0 . "LAYER") '(100 . "AcDbSymbolTableRecord") '(100 . "AcDbLayerTableRecord") '(70 . 0) '(6 . "Continuous")(cons 62 cor)
(cons 2 lay_name)
)
)
(command "clayer" lay_name)
(princ "\n已新建图层<<")
(princ lay_name)
(princ ">>并切换成当前图层")
)
)
(prin1)
)
后面几句princ,当时不记得怎么组合在一起了,就连着写了几个,还有list的的加数据,也忘了,用的别的办法,所以不想放源码,虽然现在已经知道了,你自己想办法了
没怎么看明白 love1030312 发表于 2014-12-10 15:51 static/image/common/back.gif
没怎么看明白
1.就是新建一个图层,并且图层颜色都跟已有颜色不一样
2.这个新建图层为当前层
3. ...跟已有颜色不一样...
OK. 但每个人的用色习惯不一,您得列出待用序表
Andyhon 发表于 2014-12-10 17:03 static/image/common/back.gif
...跟已有颜色不一样...
OK. 但每个人的用色习惯不一,您得列出待用序表
用色只要跟已有颜色不一样,随机产生,如果不是自已需要的,手动改一下即可 品茗新秀 发表于 2014-12-10 16:50 static/image/common/back.gif
1.就是新建一个图层,并且图层颜色都跟已有颜色不一样
2.这个新建图层为当前层
3.
就这点要求???这个很简单很简单了 LZ都金牌了完全可以自己搞定 love1030312 发表于 2014-12-10 23:05 static/image/common/back.gif
就这点要求???这个很简单很简单了 LZ都金牌了完全可以自己搞定
你好,以前照着书还能写几个,现在出差在外,难的是跟已有颜色不一样 颜色从1开始,遇到没用过的就用,非源码 lyqiezi 发表于 2014-12-13 10:25 static/image/common/back.gif
颜色从1开始,遇到没用过的就用,非源码
谢谢,主要是学习
页:
[1]