注册 登录
明经CAD社区 返回首页

skg123的个人空间 http://www.mjtd.com/?334888 [收藏] [复制] [分享] [RSS]

日志

摘自网上的ssget扩展用法

热度 1已有 2946 次阅读2014-6-19 19:50 |系统分类:应用| ET扩展

摘自网上的ssget扩展用法

mode
大小写无所谓
;;可以模拟带过滤的entsel
;;选择拾取框内的实体,选择不到就结束
(defun c:test1 ()
  (setq ss (ssget ":E:S" '((0 . "line"))))
  (command "erase" ss "")
)

;;?
(defun c:test2 ()
  (setq ss (ssget ":N" '((0 . "insert"))))
  (command "erase" ss "")
)

;;会累加选择的实体同一个块选择两次个数就会乘以2(看命令行)
;;去掉":D"你试试结果(看命令行)
(defun c:test3 ()
  (setq ss (ssget ":D" '((0 . "insert"))))
  (sslength ss)
)

;;只选择一次自动结束选择
;;用处省了回车
(defun c:test4 ()
  (setq ss (ssget ":S" '((0 . "line"))))
  (command "erase" ss "")
)

;;会提示有几个在锁定图上 并且不选择在锁定图层的实体(看命令行)
;;去掉":L"你试试结果(看命令行)
(defun c:test5 ()
  (setq ss (ssget ":L" '((0 . "insert"))))
  (sslength ss)
)

;;上次的的选择集 (这个好理解)
(defun c:test6 ()
  (setq ss (ssget "P" '((0 . "insert"))))
  (sslength ss)
)

;;?
(defun c:test7 ()
  (setq ss (ssget "+." '((0 . "insert"))))
  (sslength ss)
)

;;可以模拟带过滤的entsel
;;选择拾取框内的实体,选择不到就不结束,选择到不右键也不结束注意和":E:S"的区别
(defun c:test8 ()
  (setq ss (ssget ":E" '((0 . "insert"))))
  (sslength ss)
)

;;自动选择所有的满足条件的实体(好理解)冻结的也可选择到
(defun c:test9 ()
  (setq ss (ssget "X" '((0 . "insert"))))
  (sslength ss)
)

;;自动选择不包括冻结的满足条件的实体(感谢masterlong)
(defun c:test10 ()
  (setq ss (ssget "A" '((0 . "insert"))))
  (sslength ss)
)

;;只选择含数字的文本(好理解)
(defun c:test11 ()
  (setq ss (ssget '((1 . "*[0-9]*"))))
)

;;只选择含字母的文本(好理解)
(defun c:test12 ()
  (setq ss (ssget '((1 . "*[a-A-z-Z]*"))))
)

;;选择半径大于800小于8000的圆
(defun c:test13 ()
  (setq ss (ssget '((-4 . "<and")
      (0 . "circle")
      (-4 . ">")
      (40 . 800)
      (-4 . "<")
      (40 . 8000)
      (-4 . "and>")
     )
    )
  )
)
;;选择图层表("图层1" "图层2" "图层3" "图层4" ---------------有很多个图层)内的线(这个要感谢网友eachy,感谢学院派xyp1964进行了优化)
(defun c:test14 ()
  (setq la '("1" "2" "3" "4")
 ss (ssget
      (list
        '(0 . "line")
        (cons 8
       (apply 'strcat (mapcar '(lambda (x) (strcat x ",")) la))
        )
      )
    )
  )
)
;;选择经过某点的实体,
(defun :test15 ()
  (setq pt (getpoint))
  (setq ss (ssget pt))
)

;;选择0层以外的线
(defun c:test16 ()
  (setq ss (ssget '((-4 . "<AND")
      (0 . "line")
      (-4 . "<NOT")
      (8 . "0")
      (-4 . "NOT>")
      (-4 . "AND>")
     )
    )
  )
)

;;选择带扩展数据的实体
(defun c:test17 ()
  (setq ss (ssget '((0. "CIRCLE") (-3 ("APPNAME")))))
)

;;窗选择 包含在框内的被选择 相交的不选择和"c"比较一下
;;屏幕外的选择不到
(defun c:test18 ()
  (setq pt1 (getpoint))
  (setq pt3 (getcorner pt1))
  (setq ss (ssget "w" pt1 pt3 '((0 . "insert"))))
  ;;"wp"后面换成点集 (setq ss(ssget "wp" ptl '((0 . "insert"))))
)

;;框选择 包含在框内的及和框相交的被选择 和"w"比较一下
;;屏幕外的选择不到
(defun c:test19 ()
  (setq pt1 (getpoint))
  (setq pt3 (getcorner pt1))
  (setq ss (ssget "c" pt1 pt3 '((0 . "insert"))))
  ;;"cp"后面换成点集 (setq ss(ssget "cp" ptl '((0 . "insert"))))
)
;;线相交的线删除(屏幕外的选择不到郁闷所以要用zoom "ob")
(defun c:test20 ()
  (setq ptl nil)
  (while (setq pt (getpoint))
    (setq ptl (cons pt ptl))
  )
  (setq ss (ssget "f" ptl '((0 . "line"))))
  (command "erase" ss "")
)
;;选择不含数字的文本(结合了test11 和test16)
(defun c:test21 ()
  (setq ss (ssget '((-4 . "<NOT")
      (1 . "*[0-9]*")
      (-4 . "NOT>")
     )
    )
  )
)
;;选择不含数字的文本(caoyin提供的)
(defun c:test21-1 ()
  (setq ss (ssget '((1 . "~*#*"))))
)
;;只选择不含字母的文本(结合test12和test16)
(defun c:test22 ()
  (setq ss (ssget '((-4 . "<NOT")
      (1 . "*[a-A-z-Z]*")
      (-4 . "NOT>")
     )
    )
  )
)


路过

雷人
1

握手

鲜花

鸡蛋

刚表态过的朋友 (1 人)

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

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

GMT+8, 2024-4-27 09:37 , Processed in 1.738121 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部