明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: Marckie

【源码】贱人工具箱按层选择、按层全选优化

    [复制链接]
发表于 2020-9-11 09:07 | 显示全部楼层
合并成一个命令,不增加动作,两个功能不变

;按层选择
(DEFUN C:CXX(/ Faith-lst->string lay_ss  lay_list en lay_name en_list en_type n ss1)
        ;子程序1:将图层名称转化为以逗号分隔的列表
        (defun Faith-lst->string (lst / str1)
                (setq str1 "")
                (mapcar (function (lambda (x)(setq str1 (strcat str1 "," x))))        lst)
                (setq str1 (substr str1 2))
                (if (/= "" str1)        str1)
        )
        ;*************************
        (princ "\n 请选择对象,这一步用来确定你需要选择的图层:")
        (setq lay_ss (ssget))
        (IF lay_ss
                (PROGN
                        (repeat (setq n (sslength lay_ss))
                                (setq en (ssname lay_ss (setq n (1- n)))
                                        en_list (entget en)
                                        en_type (cdr (assoc 0 en_list))
                                )
                                (setq lay_name (cdr (assoc 8 en_list)))
                                (if (not (member lay_name lay_list))
                                        (setq lay_list (cons lay_name lay_list))
                                )
                        )
                        (setq lay_name (Faith-lst->string lay_list)
                                lay_list nil
                        )
                        (princ "\n 现在只会选择属于以下图层的对象了:")
                        (princ (strcat lay_name))
                        (princ "\n 范围框选或右键全选:")
                        (setvar "nomutt" 1)
                        (if        (= (setq ss1 (ssget (list (cons 8 lay_name)))) nil)
                                (setq ss1 (ssget "X" (list (cons 8 lay_name))))
                        )
                        (setvar "nomutt" 0)
                        (sssetfirst nil ss1);让已知选择集处于选中状态
                )
        )
        (princ)
)
(princ "\n功能:按层选择(可多图层),命令:CXX。")
回复 支持 3 反对 0

使用道具 举报

发表于 2022-3-26 10:54 | 显示全部楼层
wzg356 发表于 2020-9-11 09:07
合并成一个命令,不增加动作,两个功能不变

;按层选择

可以可以,很多命令就是可以这样简化一下,合并一下。
发表于 2022-3-30 13:22 | 显示全部楼层
谢谢!  分享程序!!!
发表于 2022-3-30 14:26 | 显示全部楼层
多谢分享,谢谢
发表于 2023-9-17 09:39 | 显示全部楼层
这个太方便了
发表于 2023-9-17 10:11 | 显示全部楼层
wzg356 发表于 2020-9-11 09:07
合并成一个命令,不增加动作,两个功能不变

;按层选择

厉害了,都是大神
发表于 2023-9-17 14:55 | 显示全部楼层
非常感谢大师出手
发表于 2023-9-20 00:34 | 显示全部楼层
感谢大佬分享
发表于 2024-2-13 15:14 | 显示全部楼层
按层选择,非常好
发表于 2024-2-17 22:19 | 显示全部楼层
挺好用的,感谢分享!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-3 02:29 , Processed in 0.238506 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表