WWYYBB1015 发表于 2019-7-6 10:17:40

做了一个改图层的命令,选择对象改到指定图层

感觉没啥大用处,也许图层比较多,又懒得找可以试试这个,或者自己做了工具箱
这个可以方便集成进去。

(defun C:GTC()
(vl-load-com)
(print "\n请选择需要转换图层的对象:")
(setq ss (ssget))

(setq xx nil T_Nil t)

(while (eq t T_Nil)
(setq xx (getstring "\n输入图层名字:"))
(setq T_Nil (null (tblsearch "layer" xx)))
)

(setq n (sslength ss))
(setq i 0)
(while (< i n)
(setq ent (ssname ss i))
(setq        obj (vlax-ename->vla-object ent))
(vla-put-Layer obj xx)
(setq ent nil)
(setq obj nil)
(setq i (+ i 1)))
(princ))

he378980280 发表于 2019-8-19 14:51:04

谢谢分享 。 下载试试

ketxu 发表于 2019-8-25 16:40:51

Thanks for sharing :*

迷失1786 发表于 2021-1-7 21:03:33

谢谢分享 。 下载试试

k1nger 发表于 2021-3-23 17:13:11

(command "layer" "set" (cdr (assoc 8 (entget (car (entsel))))))直接将对象设为当前图层

hydkot99 发表于 2021-3-31 15:04:37

还不错,如能加上先选择对象,再输入图层就更好了

sunny_8848 发表于 2021-8-5 11:07:04

k1nger 发表于 2021-3-23 17:13
(command "layer" "set" (cdr (assoc 8 (entget (car (entsel))))))直接将对象设为当前图层
这个命令要是能指定图层(不一定是当前图层)就简单明了

k1nger 发表于 2021-8-9 13:48:51

定义两个变量,赋下值就可以

2496653555 发表于 2021-8-13 11:04:51

(defun c:ccM (/ ss ent layr)
(princ "\移动到层目标层")
(setq ent (Cdr(Assoc 8 (Entget (Car(Entsel))))))
(setq ss (ssget))
(if ss
    (progn
      (vl-cmdf "CHANGE" ss "" "P" "LA" ent "");"WEDM"
    )
)
(princ)
)

k1nger 发表于 2021-8-13 14:12:28

2496653555 发表于 2021-8-13 11:04
(defun c:ccM (/ ss ent layr)
(princ "\移动到层目标层")
(setq ent (Cdr(Assoc 8 (Entget (Car(Entsel) ...

(vl-cmdf "CHANGE" (ssget) "" "P" "LA" (Cdr(Assoc 8 (Entget (Car(Entsel))))))"") 这样应该也可以
页: [1]
查看完整版本: 做了一个改图层的命令,选择对象改到指定图层