明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 露水2

[基础] ssget 后跟mode 的部分理解(不断更新)

    [复制链接]
发表于 2018-9-27 18:11 | 显示全部楼层
好帖子 学习起来
发表于 2019-7-5 15:57 | 显示全部楼层
感谢楼主分享!
发表于 2019-7-28 22:38 | 显示全部楼层
感谢楼主分享
发表于 2021-3-30 13:34 | 显示全部楼层
感谢分享,学习了
发表于 2021-9-10 02:11 | 显示全部楼层
本帖最后由 sfzyr 于 2021-9-10 23:45 编辑
caoyin 发表于 2011-6-18 00:23
;选择0层以外的线
(defun c:test16()
(setq ss (ssget '((0 . "line")(8 . "~0"))))

如何结合W 和 :L  框选,过滤掉框选时锁定图层。以下来自晓东论坛,作者eachy,一定要这样吗,有无简单的结合 和W就可以的办法:
;;;=================http://bbs.xdcad.net/thread-201245-1-1.html=========
(ssget [sel-method] [pt1 [pt2]] [pt-list] [filter-list])

在使用 SSGET 的过程中发现在含有 Lock 的图层时,只有 CAD 命令可以过滤掉 Lock 图层实体,
Seclect 命令和 SSGET 是不能过滤 Lock 图层的,这样在程序中循环将浪费掉大量的时间,因此
写了这个函数简单情况下替代标准的 Ssget。

参数: Msg  ----  提示字串
       mode ----  同 ssget 的 method, 没有提供 pt 选项,够用就行
       filter --- 过滤表


|;
(defun ea:ssget        (Msg mode filter / ea:getlocklyr locklyr)
  (defun ea:getlocklyr (/ d r);检索锁定图层
    (setq r "")
    (while (setq d (tblnext "layer" (null d)))
      (if (= (cdr (assoc 70 d)) 4)
        (setq r (strcat (cdr (assoc 2 d)) "," r))
      )
    )
    (if        (/= r "")
      (vl-string-trim "," r);还是 2000+ 以上版本方便
      nil
    )
  )
  (setq locklyr (ea:getlocklyr));锁定图层字串
  (if locklyr
    (if        filter
      (setq
        filter (append
                 filter
                 (list '(-4 . "<not") (cons 8 locklyr) '(-4 . "not>"))
               )
      )
      (setq
        filter (list '(-4 . "<not") (cons 8 locklyr) '(-4 . "not>"))
      )
    )
  );构造图层过滤表,ssget 中即使前面有锁定的图层 not 仍旧会起作用
  (if msg
    (princ msg)
  );提示串
  (cond
    ((and mode filter)
     (ssget mode filter);有 mode
    )
    (filter
     (ssget filter);含有过滤表
    )
    (t (ssget));其它情况用标准 ssget
  )
)
;;;;=============================================
(setq ss (ai_ssget (ssget)))
;;;=============================================
以上两个函数,那个运行速度会更快了??
发表于 2022-3-1 12:52 | 显示全部楼层
学习学习,感谢分享
发表于 2022-5-26 08:06 | 显示全部楼层
学习了学习了
发表于 2022-7-23 13:30 | 显示全部楼层
感谢大佬分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-26 15:14 , Processed in 0.213221 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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