kmustwxw 发表于 2015-8-27 09:11:59

如何将一个图层转换到另一个图层,比如:将DLDW、JMD换层到“居民地及设施”层

本帖最后由 kmustwxw 于 2015-8-27 09:13 编辑

(defun c:mmlay()
(setq ss (ssget "x" ' ((-4."<or") (8 ."jmd") (8."dldw") (-4."or>"))))
(if(/=ss nil)
(command "change" ss "" "p" "la" "居民地及设施" "c" "bylayer" "")
)
(setq ss nil)
(princ))

有段代码,加载好后,提示命令无效,不知道 是什么情况,求高手指导。谢谢

xyp1964 发表于 2015-8-28 12:33:03

(defun c:tt ()
(setq lst '(("jmd,dldw" "居民地及设施")
            ("DGX,GCD,DMTZ" "地貌")
            ("DLSS" "交通")
            ("GXYZ" "管线")
            ("KZD" "测量控制点")
            ("SXSS" "水系及附属设施")
            ("TK" "图廓整饰")
            ("ZBTZ" "植被与土质")
            ("ZJ" "注记")
             )
)
(foreach a lst
    (if (setq ss (ssget "x" (list (cons 8 (car a)))))
      (command "change" ss "" "p" "la" (cadr a) "c" "bylayer" "")
    )
)
(princ)
)

spp_wall 发表于 2015-8-27 10:02:12

(defun c:mmlay()
(setq ss (ssget "x" '((-4 . "<or") (8 . "jmd") (8 . "dldw") (-4 . "or>"))))
(if(/= ss nil)
(command "change" ss "" "p" "la" "居民地及设施" "c" "bylayer" "")
)
(setq ss nil)
(princ)
)

kmustwxw 发表于 2015-8-27 10:34:27

太感谢你了,是点号 . 前面要有空格吗?、

kmustwxw 发表于 2015-8-27 10:47:42

spp_wall 发表于 2015-8-27 10:02 static/image/common/back.gif
(defun c:mmlay()
(setq ss (ssget "x" '((-4 . ""))))
(if(/= ss nil)


如果我要将以下图层也换下层,要放到一个LSP中,如何加?谢谢。
DGX、GCD、DMTZ层上的要素换层到“地貌”层;
“DLSS”层换层到“交通”;
GXYZ层上的要素换层到“管线”;
KZD上的颜色换层到“测量控制点”层;
SXSS层上的要素换层到“水系及附属设施”层;
TK层上的颜色换层到“图廓整饰”层;
ZBTZ层上的要素换层到“植被与土质”层;
ZJ层上的要素换层到“注记”层,颜色随层。

江南十笑 发表于 2023-5-9 16:10:52

xyp1964 发表于 2015-8-28 12:33


这个方法不能更改块中图层

cq4920 发表于 2023-5-9 20:01:34

江南十笑 发表于 2023-5-9 16:10
这个方法不能更改块中图层


(defun c:layerchange (/ oldlayer newlayer ss)
(setq oldlayer (getstring "\nEnter the name of the layer to be changed: "))
(setq newlayer (getstring "\nEnter the name of the new layer: "))
(setq ss (ssget "_X" (list (cons 0 "LWPOLYLINE,CIRCLE,ARC,LINE") (cons 8 oldlayer))))
(command "_.CHPROP" ss "" "LA" newlayer)
(princ)
)
来自chatGPT3.5大模型

江南十笑 发表于 2023-5-9 22:49:08

cq4920 发表于 2023-5-9 20:01
(defun c:layerchange (/ oldlayer newlayer ss)
(setq oldlayer (getstring "\nEnter the name of...

这不是我想要的效果 我只想上面的支持块内图层就行了
页: [1]
查看完整版本: 如何将一个图层转换到另一个图层,比如:将DLDW、JMD换层到“居民地及设施”层