明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1553|回复: 12

[函数] ssget如何不选择裁剪过的图块

[复制链接]
发表于 2018-8-20 13:49:23 | 显示全部楼层 |阅读模式
请教各位老师,用ssget如何不选择裁剪过的图块?或者只选择裁剪过得块。看了下组码,裁剪过的都有类似这段组码:(102 . "{ACAD_XDICTIONARY") (360 . <图元名: -160b928>) (102 . "}")
一下卡壳了,望不吝赐教谢谢


发表于 2024-8-23 13:38:47 | 显示全部楼层
  1. (defun c:tt ()
  2.   "选择非裁剪图块"
  3.   (if (setq ss (ssget '((0 . "INSERT"))))
  4.     (progn
  5.       (setq i -1
  6.             ss1 (ssadd)
  7.       )
  8.       (while (setq e (ssname ss (setq i (1+ i))))
  9.         (if (not (assoc 102 (entget e)))
  10.           (setq ss1 (ssadd e ss1))
  11.         )
  12.       )
  13.       (sssetfirst nil ss1)
  14.     )
  15.   )
  16.   (princ)
  17. )
  18. (defun c:tt ()
  19.   "选择裁剪图块"
  20.   (if (setq ss (ssget '((0 . "INSERT"))))
  21.     (progn
  22.       (setq i -1
  23.             ss1(ssadd)
  24.       )
  25.       (while (setq e (ssname ss (setq i (1+ i))))
  26.         (if (assoc 102 (entget e))
  27.           (setq ss1 (ssadd e ss1))
  28.         )
  29.       )
  30.       (sssetfirst nil ss1)
  31.     )
  32.   )
  33.   (princ)
  34. )
发表于 2019-3-21 22:35:37 | 显示全部楼层


  1. ;; tt(裁剪图块选择)
  2. (defun c:tt ()
  3.   (if (and (setq ss (ssget "X" (list '(0 . "INSERT"))))
  4.            (setq lst (vl-remove-if-not
  5.                        '(lambda (x) (xyp-DXF 102 x))
  6.                        (xyp-Ss2List ss)
  7.                      )
  8.            )
  9.       )
  10.     (sssetfirst nil (xyp-list2ss lst))
  11.   )
  12.   (princ)
  13. )

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

厉害,对我有用,感谢  发表于 2022-2-22 18:25
发表于 2024-8-23 10:51:00 | 显示全部楼层
  1. (defun c:tt ( / _entN _nn _ss)
  2.   (setq _ss (ssget "X" (list '(0 . "INSERT"))))
  3.   (repeat (setq _nn (sslength _ss))
  4.     (setq _entN (ssname _ss (setq _nn (1- _nn))))
  5.     (if (assoc 102 (entget _entN))
  6.       (setq _ss (ssdel _entN _ss))
  7.     )
  8.   )
  9.   (sssetfirst nil _ss)
  10.   (princ)
  11. )
 楼主| 发表于 2018-8-20 13:49:59 | 显示全部楼层
一下子不知道怎么过滤了
发表于 2019-3-21 17:10:08 | 显示全部楼层
这个我也想知道,顶一下
发表于 2024-7-4 23:17:47 来自手机 | 显示全部楼层
不裁剪的块怎么选择?
 楼主| 发表于 2024-8-21 15:50:47 | 显示全部楼层
发表于 2024-8-21 20:47:48 | 显示全部楼层
jh3030912 发表于 2024-7-4 23:17
不裁剪的块怎么选择?

  1. (defun c:tt ()
  2.   (if (and (setq ss (ssget "X" (list '(0 . "INSERT"))))
  3.              (setq lst (vl-remove-if'(lambda (x) (xyp-DXF 102 x))(xyp-Ss2List ss)))
  4.       )
  5.     (sssetfirst nil (xyp-list2ss lst))
  6.   )
  7.   (princ)
  8. )
发表于 2024-8-23 06:50:25 | 显示全部楼层

院长,这个需要搭配e派工具箱才可以使用吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 09:41 , Processed in 0.202872 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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