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)
    )
)
)
页: 1 [2] 3 4
查看完整版本: 常用的图层函数