aihuyujian 发表于 2013-11-11 14:24:46

关于创建图层

在不打开图层管理器的情况下,怎么搜寻已有图层,比如说有 参考线 这个图层就不新建此图层 没有就创建此图层 还要改变颜色
能用lisp实现么 ? 大家帮帮忙啦 谢谢啦

llsheng_73 发表于 2013-11-11 14:38:52

下边两个函数都可以以LAY为图层名建好图层(没有就建),把颜色改为CLR指定的颜色,把LAY指定的图层名置为当前图层
(defun SETLAYER(LAY CLR / AcDocument layerObj)
(vl-load-com)
(setq layerObj(vla-add(vla-get-Layers(setq AcDocument(vla-get-ActiveDocument(vlax-get-acad-object))))LAY))
(vla-put-ActiveLayer AcDocument layerObj)
(vla-put-Color layerObj CLR)
)

(defun SETLAYER_LSP(LAY CLR)
(if (=(tblobjname "LAYER" LAY) nil)
    (entmake (list'(0 . "LAYER")'(100 . "AcDbSymbolTableRecord")'(100 . "AcDbLayerTableRecord")
       '(6 . "CONTINUOUS")(cons 62 CLR)'(70 . 0)(cons 2 LAY)))
    (entmod(subst(cons 62 CLR)(assoc 62(entget(tblobjname "LAYER" LAY)))(entget(tblobjname "LAYER" LAY))))
   ) (setvar "CLAYER" LAY)
)

aihuyujian 发表于 2013-11-11 15:05:01

llsheng_73 发表于 2013-11-11 14:38 static/image/common/back.gif
下边两个函数都可以以LAY为图层名建好图层(没有就建),把颜色改为CLR指定的颜色,把LAY指定的图层名置为当 ...

谢谢大神 我去试试

llsheng_73 发表于 2013-11-11 15:19:39

aihuyujian 发表于 2013-11-11 15:05 static/image/common/back.gif
谢谢大神 我去试试

不敢,其实也是来自这里的,我只是下载来进行了一点小修改

aihuyujian 发表于 2013-11-12 16:43:59

llsheng_73 发表于 2013-11-11 15:19 static/image/common/back.gif
不敢,其实也是来自这里的,我只是下载来进行了一点小修改

谢谢了 已经完美解决图层创建问题
可是还有个小问题请教大婶了 给看看吧 虽然不影响使用 就是有点不理解
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=108318&extra=page%3D1%26filter%3Dauthor%26orderby%3Ddateline%26orderby%3Ddateline

yefei812678 发表于 2024-2-24 10:46:28

能自己创建吗
页: [1]
查看完整版本: 关于创建图层