一苇以航 发表于 2013-1-22 13:29:18

求助,所有图层名加前缀,并设置一键开/关、锁/解有相应前缀的图层。

本帖最后由 一苇以航 于 2013-1-22 13:36 编辑

求助,一键将所有图层加前缀(语句中设定好,如JZ_),由于0层不可更名,需增加一个JZ_0层,并将原0层对象全部转移到JZ_0层。并设置一键开/关含有JZ_前缀的图层、一键锁/解含有JZ_前缀的图层。

一苇以航 发表于 2013-1-22 14:26:38

本帖最后由 一苇以航 于 2013-1-22 14:28 编辑

补充:下面的程序是论坛里某大侠编的,除0,Defpoints层,全部更名的程序。

;!!!全部图层加前缀<除0,Defpoints>
(defun c:QZ ( / YY_QIANZ *doc* LAY LAYERS OLDMING)
(vl-load-com)
(setq YY_QIANZ (getstring "\n输入图层要加的前缀:"))
(if YY_QIANZ
    (progn
(setq *doc* (vla-get-activedocument (vlax-get-acad-object))
      layers (vla-get-layers *doc*)
)
(vlax-for lay layers (setq OLDMING (vla-get-name lay))
            (if (not (member OLDMING '("0" "Defpoints")))
            (vla-put-Name lay (strcat YY_QIANZ OLDMING))
            )
)
    )
)
)

我想在上面的一键命令中,增加一个功能,就是把没被更名的0层里的对象转移到一个新的图层JZ_0层中去。
帮帮忙啊,大神们!
至于一键锁/解特定图层,一键开/关特定图层,方便的话,也帮我写个吧。
跪谢!

hench 发表于 2014-3-20 14:12:38

我也用过这个命令,不过有个问题,如果图层里面有名字已经有这样的前缀的,就会出现“; 错误: Automation 错误。 记录名重复”这样的错误,一些图层没有加上前缀,在2008上出现的,但是在2004没有问题,不知道是什么原因。

szxgsh 发表于 2014-6-29 15:20:54

加了前缀后,反向操作的源码哪位有?就是去掉某些前缀。
页: [1]
查看完整版本: 求助,所有图层名加前缀,并设置一键开/关、锁/解有相应前缀的图层。