找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: marting

[每日一码] SSGET直接过滤选择整数,实数,单词,带数字文字

 火.. [复制链接]

已领礼包: 9个

财富等级: 恭喜发财

发表于 2017-6-3 14:48:34 | 显示全部楼层
顶。。。很实用,谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 475个

财富等级: 日进斗金

发表于 2017-6-4 11:46:14 | 显示全部楼层
学习一下
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2017-6-11 23:02:17 | 显示全部楼层

做个记号,学习了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-6-12 11:40:00 | 显示全部楼层
好灵活的SSGET.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 303个

财富等级: 日进斗金

发表于 2017-6-13 11:08:14 | 显示全部楼层
做个记号,学习了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 329个

财富等级: 日进斗金

发表于 2017-6-13 11:26:44 | 显示全部楼层
做个记号,学习了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2017-6-13 12:34:03 | 显示全部楼层
谢谢楼主分享!资料收集中!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8711个

财富等级: 富甲天下

发表于 2017-6-18 11:59:34 来自手机 | 显示全部楼层
支持楼主大人了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2017-6-19 00:59:40 | 显示全部楼层
好东西  非常感谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2017-6-19 01:00:59 | 显示全部楼层
“我来测试一下,行不行”
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-7-13 00:35:05 | 显示全部楼层
看看学习一下
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

发表于 2017-7-17 01:06:54 | 显示全部楼层
够偶偶偶偶偶偶偶偶偶偶偶偶偶偶偶偶偶偶偶偶偶过
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 496个

财富等级: 日进斗金

发表于 2017-7-17 07:47:53 | 显示全部楼层

初学者很好的参考。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 9个

财富等级: 恭喜发财

发表于 2017-7-19 12:05:06 | 显示全部楼层
谢谢主,学习了。。。我也把我收集的发上来给大家参考下
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]*"))))
)

;只选择含数字的文本( 同上)(感谢caoyin提供)
(defun c:test11()
(setq ss (ssget '((1 . "*#*"))))
)

;只选择数字文本
(defun c:test12()
(setq ss (ssget '((0 . "text,mtext") (1 . "~*[~.0-9]*" ))) )
)

;选择不含数字的文本
(defun c:test13()
(setq ss (ssget '((-4 . "<NOT")
    (1 . "*[0-9]*")
    (-4 . "NOT>"))
  )))

;选择不含数字的文本(同上)(caoyin 提供的)
(defun c:test13()
(setq ss(ssget '((1 . "~*#*"))))
)

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

;只选择字母文本
(defun c:test15()
(setq ss (ssget '((0 . "text,mtext") (1 . "~*[~a-A-z-Z]*" ))))
)

;只选择不含字母的文本
(defun c:test16()
(setq ss (ssget '((-4 . "<NOT")
    (1 . "*[a-A-z-Z]*")
    (-4 . "NOT>"))))
)

;只选择不含字母的文本(同上)
(defun c:test16()
(setq ss (ssget '((1 . "~*[a-A-z-Z]*"))))
)

;选择半径大于800小于8000的圆
(defun c:test17()
(setq ss (ssget '((-4 . "<and")
    (0 . "circle")
    (-4 . ">")(40 . 800)
    (-4 . "<")(40 . 8000)
    (-4 . "and>"))
  ))
)

;选择图层表("图层1" "图层2" "图层3" "图层4" ---------------有很多个图层)内的线(这个要感谢网友eachy,感谢学院派xyp1964进行了优化)
(defun c:test18()
  (setq la '("1" "2" "3" "4")
     ss (ssget (list '(0 . "line") (cons 8 (apply 'strcat (mapcar '(lambda (x) (strcat x ",")) la)))))
  ))

;选择经过某点的实体,
(defun c:test19()
(setq pt (getpoint))
(setq ss (ssget “c” pt pt))
)

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

;选择0层以外的线(同上)(感谢caoyin提供)
(defun c:test20()
(setq ss (ssget '((0 . "line")(8 . "~0"))))
)

;选择图层名不含字母以外的线(根据caoyin提供几个实例进行了重新组合还可以组合出来很多)
(defun c:test21()
(setq ss (ssget '((0 . "line")(8 . "~*[a-A-z-Z]*"))))
)

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

;窗选择 包含在框内的被选择 相交的不选择和"c"比较一下
;屏幕外的选择不到
(defun c:test23()
(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:test24()
(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:test25()
  (setq ptl nil)
  (while (setq pt (getpoint))
     (setq ptl (cons pt ptl))
    )
(setq ss (ssget "f" ptl '((0 . "line"))))
  (command "erase" ss "")
  )
;删除点(0 0)和点(1000 1000)形成的矩形内的实体(在屏幕外面的也可以),(感谢masterlong)
(defun c:test26()
(setq pt1 '(0  0))            ;窗口左下角点
(setq pt3 '(1000 1000))        ;窗口右上角点
  (setq ss (ssget "x"  (list
        '(-4 . "<and")
        '(0  . "insert")
                      '(-4 . ">,>,*")
          (cons 10 pt1)
        '(-4 . "<,<,*")
                        (cons 10 pt3)
                      '(-4 . "and>")
)))
  (command "erase" ss "")
)





;只选择字母文本
(defun c:test24()
(setq ss (ssget '((0 . "text,mtext") (1 . "~*[~a-A-z-Z]*" ))) )
)



;选择所有文字、圆、椭圆和封闭的多义线
(defun c:tt27 ()
  (setq  ss (ssget '((-4 . "<OR")
        (-4 . "<AND")
        (0 . "TEXT,CIRCLE,ELLIPSE")
        (-4 . "AND>")
        (-4 . "<AND")
        (0 . "LWPOLYLINE")
        (-4 . "&=")
        (70 . 1)
        (-4 . "AND>")
        (-4 . "OR>")
       )
     )      
  )
)

其他一些 慢慢再添加
只选择某个类型的图元
(setq xt (ssget '((0 . "DIMENSION"))))



;================只选择指定图元
(ssget '((0 . "LWPOLYLINE,POLYLINE")))

;选择整数文字
(defun c:SelTextInt ()
  (sssetfirst
    nil
    (ssget
      "_X"
      '(
        (0 . "MTEXT,TEXT")
        (1 . "*#*")
        (1 . "~*[~-0-9]*")
        (1 . "~?*-*")
      )
    )
  )
  (princ)
)
- 本文出自晓东CAD家园-论坛,原文地址:http://bbs.xdcad.net/thread-706525-1-1.html



;选择实数
(defun c:SelTextReal ()
  (sssetfirst
    nil
    (ssget
      "_X"
      '(
        (0 . "MTEXT,TEXT")
        (1 . "*#`.*")
        (1 . "~*[~-.0-9]*")
        (1 . "~*`.*`.*")
        (1 . "~?*-*")
      )
    )
  )
  (princ)
)
- 本文出自晓东CAD家园-论坛,原文地址:http://bbs.xdcad.net/thread-706525-1-1.html



;选择单词
(defun c:SelTextAlpha ()
  (sssetfirst
    nil
    (ssget
      "_X"
      '(
        (0 . "MTEXT,TEXT")
        (1 . "~*#*")
      )
    )
  )
  (princ)
)
- 本文出自晓东CAD家园-论坛,原文地址:http://bbs.xdcad.net/thread-706525-1-1.html
;选择带数字的单词
(defun c:SelTextAlphaNum ()
  (sssetfirst
    nil
    (ssget
      "_X"
      '(
        (0 . "MTEXT,TEXT")
        (1 . "*#*")
        (-4 . "<OR")
          (1 . "*[~-.0-9]*")
          (1 . "`.*")
          (1 . "*`.*`.*")
          (1 . "?*-*")
        (-4 . "OR>")
      )
    )
  )
  (princ)
)
- 本文出自晓东CAD家园-论坛,原文地址:http://bbs.xdcad.net/thread-706525-1-1.html



(setq ss (ssget '((0 . "TEXT") (1 . "~*[~`--9]*"))))            ;只选取数字文本
(setq ss (ssget '((0 . "TEXT") (1 . "[`--9]?"))))            ;二位整数
(setq ss (ssget '((0 . "TEXT") (1 . "[`--9]"))))            ;一位整数


- 本文出自晓东CAD家园-论坛,原文地址:http://bbs.xdcad.net/thread-706525-1-1.html

评分

参与人数 1D豆 +20 收起 理由
XDSoft + 20 很给力!经验;技术要点;资料分享奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2017-7-19 12:07:49 | 显示全部楼层

最好单独发个贴,因为在别的主题里面会埋没。
另外,看下论坛置顶的帖子,如何贴LISP代码,更美观。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-3-29 23:31 , Processed in 0.403769 second(s), 54 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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