尽管autocad内置了图层管理器这样的工具,有时候还是免不了需要选中某一个图层中的全部对象, 集中进行修改。毕竟,图层管理器稍微“重”了一点,拿来完成这一类的工具,显然是杀鸡用牛刀。

本文给大家提供一个按图层全选的cad插件,总共10行autolisp代码。 其中,有效行数7行,核心函数有效代码6行。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
(defun xg/select-whole-layer (/ blk l s1)  ;no. 9
  ;; 按层全选的核心函数
  ;; 作者:徐工, 微博:@徐工徐工2020,头条:@徐工徐工
  (if (setq blk (car (entsel))) 
    (setq l  (cdr (assoc 8 (entget blk)))
          s1 (ssget "x" (list (cons 8 l)))
          s1 (sssetfirst nil s1))
    (progn (princ "\n没选中对象。") (princ))))

(defun c:cqx () (xg/select-whole-layer) (princ))

最后一行的c:cqx意味着调用命令是cqx,你可以修改为自己喜欢的快捷键。