找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 31960|回复: 112

[教学] SSGET的使用方法(不断更新)(贺晓东论坛重生)

 火.. [复制链接]

已领礼包: 1742个

财富等级: 堆金积玉

发表于 2013-3-31 16:07:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
本帖最后由 炫翔 于 2013-4-17 18:16 编辑

这是我在晓东论坛的第一个主题帖!
首先,祝贺晓东论坛
再次重生

其次:愿论坛在晓东等高手的带领下,越办越好!
为此,本人微献薄力,分享出本人一些收藏和自己发现的一些SSGET的使用方法,
同时也欢迎一些前辈,高手们跟帖,谢谢!

[pcode=lisp,true](setq ss (ssget ":S" '((0 . "LINE"))));只选取一次直线(省约回车)

(setq ss (ssget "X" '((0 . "LINE"))));自动选取直线,包含冻结的直线

(setq ss (ssget "A" '((0 . "LINE"))));自动选取直线,不包含冻结的直线

(setq ss (ssget '((1 . "*[0-9]*"))));只选取含数字的文本
(setq ss (ssget '((1 . "*#*"))))    ;只选取含数字的文本

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

(ssget '((0 . "TEXT")(-4 . "<NOT")(1 . "*[0-9]*")(-4 . "NOT>"));只选择不是数字的文字

(ssget '((0 . "TEXT")(1 . "~*#*")));只选择不是数字的文字

(setq ss (ssget '((0 . "TEXT")(1 . "#,1#,2#,3#,4#,50"))));选取1—50的数字文本

(SETQ SS (SSGET '((0 . "*text")(1 . "*(*,*)*,*(*,**)**"))));选取含括号的文本

(setq ss (ssget '((1 . "*[a-A-z-Z]*"))));只选取字母

(setq ss (ssget '((0 . "~insert")))) ;选取不含块的对象

(SETQ ss (ssget (list '(0 . "CIRCLE")(cons 40 RR))));按半径的大小选取圆

(setq ss (ssget ":E:S" '((0 . "line"))));选取拾取框内的直线,选取不到就结束

(setq ss (ssget ":E" '((0 . "LINE"))));选取拾取框内的直线,选取不到就不结束,直到按右键

(setq ss (ssget ":N" '((0 . "LINE"))));只有通过窗口、窗交点拾取

(setq ss (ssget ":D" '((0 . "LINE"))));会累加选取的直线,同一条直线,选取两次个数就会乘以2,3次则3.....

(setq ss (ssget ":L" '((0 . "LINE"))));提示有几个在锁定图上,选取没有的锁定的直线

(setq ss (ssget "P" '((0 . "LINE"))));上次的选择集

(setq ss (ssget '((0 . "line")(8 . "~0"))));选取0层以外的线

(setq ss (ssget '((0 . "line")(8 . "~*[a-A-z-Z]*"))));选取图层名不含字母以外的线

(setq ss (ssget '((0."CIRCLE") (-3 ("APPNAME")))));选取带扩展数据的实体(圆)


;得到矩形p1 p2点框内的文字,包含在框内的被选取 相交的不选取,屏幕外的选取不到,WP点集
(setq ss(ssget "w" pt1 pt3 '((0 . "*text"))))

;得到矩形p1 p2点框内的文字,包含在框内的及和框相交的被选取,屏幕外的选取不到,CP点集
(setq ss(ssget "c" pt1 pt3 '((0 . "*text"))))

;线相交的线删除(屏幕外的选取不到郁闷所以要用zoom "ob")
(defun c:XX( / pt ptl ss)
   (setq ptl nil)
  (while (setq pt (getpoint))
     (setq ptl (cons pt ptl))
   )
(setq ss (ssget "f" ptl '((0 . "line"))))
  (KX-E SS)
)

;选取图层表("CENTER" "DIM" "COOL" "CORE" -------N个图层)内的线
(setq la '("CENTER" "DIM" "COOL" "CORE")
      ss (ssget (list '(0 . "LINE") (cons 8 (apply 'strcat (mapcar '(lambda (x) (strcat x ",")) la)))))
)

;选取经过某点的实体
(setq pt (getpoint))
(setq ss (ssget "C" pt pt))

;选取不含数字的文本
(setq ss (ssget '
          ((-4 . "<AND")
             (0 . "*TEXT")
            (-4 . "<NOT")
             (1 . "*[0-9]*")
            (-4 . "NOT>")
           (-4 . "AND>")
          )
         )
)

;只选取不含字母的文本
(setq ss (ssget '
          ((-4 . "<AND")
             (0 . "*TEXT")
            (-4 . "<NOT")
             (1 . "*[a-A-z-Z]*")
            (-4 . "NOT>")
           (-4 . "AND>")
          )
         )
)

;------------------------------------------------------------------------------------------------------------
;"图层1" "图层2""图层n中的文本,图层1为层名
(SETQ SS (ssget "x"
            (list
              '(0 . "TEXT")
              (cons 8 "图层[1-n]")
            )
         )
)
;------------------------------------------------------------------------------------------------------------
;选取0层以外的线
   (setq ss
       (ssget '
          ((-4 . "<AND")
             (0 . "line")
            (-4 . "<NOT")
             (8 . "0")
            (-4 . "NOT>")
           (-4 . "AND>")
          )
         )
    )
;------------------------------------------------------------------------------------------------------------
;按颜色号选取对象
(setq col (KX-Int 7 "" "颜色号" col 1))
(setq SS (ssget
           (list
              '(-4 . "<OR")
                 (cons 62 COL)
              '(-4 . "OR>")
            )
         )
)
;-----------------------------------------------------------------------------------------------------------
;选取含KX的文本
(setq XT (strcat "*" "KX" "*"));KX为文字内容
(ssget (list
         '(0 . "text")
         (cons 1 XT)
        )
)
;-----------------------------------------------------------------------------------------------------------
;判断选取某个区域有没有直线               
(setq SS (ssget "c"
            (polar '(0 0) (* 0.25 pi) 0.5);坐标点
            (polar '(0 0) (* 1.25 pi) 0.5);坐标点
             '((0 . "LINE"))
          )
)
;-----------------------------------------------------------------------------------------------------------

;选取颜色不是随层的圆、直线
(setq SS (ssget "X"
            '((0 . "CIRCLE,LINE")
              (-4 . "/=")(62 . 256);-4  62"面不可以加AND OR
             )
         )
)
;------------------------------------------------------------------------------------------------------------
;选取颜色1和2的对象(OR)的用法
(setq ss (ssget '((-4 . "<or")
                    (62 . 2)
                    (62 . 1)
                  (-4 . "or>")
                 )
         )
)
;--------------------------------------------------------------------------------------------------------------  
;选取半径大于20小于100的圆
(setq ss (ssget '
          ((-4 . "<and")
            (0 . "circle")
            (-4 . ">")(40 . 20);大于20
            (-4 . "<")(40 . 100);小于100
           (-4 . "and>")
          )
         )
)
;--------------------------------------------------------------------------------------------------------------  
;只选取"文字(包括多行文字)、尺寸、带属性的块
(setq ss (SSGET '
            ((-4 . "<OR")
             (0 . "*TEXT,DIMENSION")
             (-4 . "<AND")
              (0 . "INSERT")
              (66 . 1)
             (-4 . "AND>")
             (-4 . "OR>")
            )
          )
)
;--------------------------------------------------------------------------------------------------------------  
;屏幕外的窗口模式选取
(setq rec_p1 '(0 0))                ;窗口左下角点
(setq rec_p2 '(1000 1000))         ;窗口右上角点
(setq filter_list
   (list
      '(0  . "insert")
      '(-4 . "<and")
         '(-4 . ">,>,*") (cons 10 rec_p1)
         '(-4 . "<,<,*") (cons 10 rec_p2)
      '(-4 . "and>")
   )
)
(ssget "x" filter_list)

;--------------------------------------------------------------------------------------------------------------  
;--------------------------------------------------------------------------------------------------------------  
;一次产生n个不同选取集
(if (setq ss (ssget)) (setq ss1 (ssget "_p" '((0 . "*TEXT")))));从选择集中分解出文字

;空回车得出不同结果的选取集
(if (setq ss (ssget))
   (setq ss (ssget "_p" flt))
   (setq ss (ssget "_x" flt))
)
;--------------------------------------------------------------------------------------------------------------  

;;;坐标范围选择,有点类似(ssget "c" p1 p2 filter),但本函数在屏幕外的也可选择
;;;测试 (tt (getpoint) (getpoint) '((0 . "insert")))
(defun tt (p1 p2 filter / minX minY maxX maxY)
(setq    minX (min (car p1) (car p2))
    minY (min (cadr p1) (cadr p2))
    maxX (max (car p1) (car p2))
    maxY (max (cadr p1) (cadr p2))
)
(if filter
  (ssget "x"
     (append (list '(-4 . "<and")
           '(-4 . ">=,>=,*")
           (list 10 minX minY 0)
           '(-4 . "<=,<=,*")
           (list 10 maxX maxY 0)
         )
         (append filter '((-4 . "and>")))
     )
  )
  (ssget "X"
     (list '(-4 . "<and")
       '(-4 . ">=,>=,*")
       (list 10 minX minY 0)
       '(-4 . "<=,<=,*")
       (list 10 maxX maxY 0)
       '(-4 . "and>")
     )
  )
)
)[/pcode]

评分

参与人数 3D豆 +2 贡献 +1 收起 理由
wkq004 + 1
/db_自贡黄明儒_ + 1 很给力!经验;技术要点;资料分享奖!
XDSoft + 1 赞一个!

查看全部评分

本帖被以下淘专辑推荐:

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

已领礼包: 1742个

财富等级: 堆金积玉

 楼主| 发表于 2013-4-2 09:06:30 | 显示全部楼层

太多地方的收藏,大多来自明经,作者也太多,也不是记得很清楚,总不能一一列出吧?
只能说是收藏的一些与自己发现的一些,

我分享的也是源码,都是来自互联网,提供给大家发展壮大才是最好的!

我想这是大家希望看到的,


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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 85个

财富等级: 招财进宝

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

使用道具 举报

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

使用道具 举报

已领礼包: 137个

财富等级: 日进斗金

发表于 2013-4-2 08:54:03 | 显示全部楼层
楼主有转载嫌疑,建议转载他人作品最好注明出去:D
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 218个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 8987个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 31个

财富等级: 招财进宝

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

使用道具 举报

已领礼包: 85个

财富等级: 招财进宝

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

使用道具 举报

已领礼包: 815个

财富等级: 财运亨通

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

使用道具 举报

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

使用道具 举报

已领礼包: 1261个

财富等级: 财源广进

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 01:24 , Processed in 0.229299 second(s), 65 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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