qinleilei
发表于 2020-8-9 14:58:29
;补充一个
;返回所有图层的名称(字符串表)
(defun Get-layerlist (/ DOC LAY-L layer)
(setq doc (vla-get-activedocument (vlax-get-Acad-Object)))
(setq layer (vla-get-Layersdoc))
(vlax-for item layer
(SETQ LAY-L (APPEND LAY-L (LIST (vla-get-Name item))))
)
)
maiko
发表于 2020-8-9 15:29:09
静静地看着楼主,抱走收藏,不客气了
zmzk
发表于 2020-8-10 06:13:43
好东东,虽然还不知道怎么用,收藏压箱底,以备后用!
mokson
发表于 2020-8-10 07:53:18
收藏收藏。
999999
发表于 2020-8-10 21:54:50
谢谢楼主分享
magicheno
发表于 2020-8-11 02:18:16
大侠,想到一点跟图层相关的,有没有把框选所选对象到设定的图层里的函数呢,例如下面的功能的
(defun c:TT5 (/ ss oldlay)
(setq ss (ssget))
(if (and ss (> (sslength ss) 0))
(progn
(setq oldlay (getvar "clayer"))
(command "layer" "m" "WP_G" "c" "3" "" "")
(command "change" ss "" "p" "la" "WP_G" "")
(command "clayer" oldlay)
)
)
)
tryhi
发表于 2020-8-11 09:59:57
magicheno 发表于 2020-8-11 02:18
大侠,想到一点跟图层相关的,有没有把框选所选对象到设定的图层里的函数呢,例如下面的功能的
(defun c:T ...
(defun c:tt ()
(setq ss (ssget))
(try-layer-make "WP_G" 3 nil nil)
(setq a -1)
(if ss
(while
(setq en(ssname ss(setq a(1+ a))))
(vla-put-Layer (vlax-ename->vla-object en)"WP_G")
)
)
)
magicheno
发表于 2020-8-11 12:44:35
本帖最后由 magicheno 于 2020-8-11 13:00 编辑
tryhi 发表于 2020-8-11 09:59
(defun c:tt ()
(setq ss (ssget))
(try-layer-make "WP_G" 3 nil nil)
非常赞,感谢大侠,不过应该是try-make-layer哈,写反了哈,还是说函数那边写反了,你的习惯应该是layer放后面的吧仔细对了下,原来是我那个帖子里写的try-make-layer,你的帖子写的是try-layer-make
magicheno
发表于 2020-8-11 15:13:19
(defun try-Layer-get (layer)
(setq ss (ssget))
(setq a -1)
(if ss
(while
(setq en(ssname ss(setq a(1+ a))))
(vla-put-Layer (vlax-ename->vla-object en)layer)
)
)
)
(defun c:tt5 ()
(try-layer-make"WP_G" 3 nil nil)
(try-Layer-get "WP_G")
)
大侠,按你写的这样类似先定义一个函数,再去命令实行应该没问题吧
magicheno
发表于 2020-8-11 16:13:52
发现个问题就是通过try-layer-make生成的图层的线型貌似出不来的,通过下面的command 命令是可以直接形成的
(defun c:TT5 ()
(try-layer-make"WP_Y" 6 PHANTOM2 nil)
(try-layer-get "WP_Y")
)
(defun c:TT6 (/ ss oldlay)
(setq ss (ssget))
(if (and ss (> (sslength ss) 0))
(progn
(setq oldlay (getvar "clayer"))
(command "layer" "m" "WP_Y" "c" "6" "" "l" "PHANTOM2" "" "")
(command "change" ss "" "p" "la" "WP_Y" "S" "0.6" "")
(command "clayer" oldlay)
)
)
)