SSGET 函数使用方法

以下资料来是互联网.

  1. (setq ss (ssget ":S" '((0 . "LINE"))));只选取一次直线(省约回车)
  2. (setq ss (ssget "X" '((0 . "LINE"))));自动选取直线,包含冻结的直线
  3. (setq ss (ssget "A" '((0 . "LINE"))));自动选取直线,不包含冻结的直线
  4. (setq ss (ssget '((1 . "*[0-9]*"))));只选取含数字的文本
  5. (setq ss (ssget '((1 . "*#*")))) ;只选取含数字的文本
  6. (setq ss (ssget '((0 . "TEXT") (1 . "~*[~`--9]*"))));只选取数字文本
  7. (ssget '((0 . "TEXT")(-4 . ")(1 . "*[0-9]*")(-4 . "NOT>"));只选择不是数字的文字
  8. (ssget '((0 . "TEXT")(1 . "~*#*")));只选择不是数字的文字
  9. (setq ss (ssget '((0 . "TEXT")(1 . "#,1#,2#,3#,4#,50"))));选取1—50的数字文本
  10. (SETQ SS (SSGET '((0 . "*text")(1 . "*(*,*)*,*(*,**)**"))));选取含括号的文本
  11. (setq ss (ssget '((1 . "*[a-A-z-Z]*"))));只选取字母
  12. (setq ss (ssget '((0 . "~insert")))) ;选取不含块的对象
  13. (SETQ ss (ssget (list '(0 . "CIRCLE")(cons 40 RR))));按半径的大小选取圆
  14. (setq ss (ssget ":E:S" '((0 . "line"))));选取拾取框内的直线,选取不到就结束
  15. (setq ss (ssget ":E" '((0 . "LINE"))));选取拾取框内的直线,选取不到就不结束,直到按右键
  16. (setq ss (ssget ":N" '((0 . "LINE"))));只有通过窗口、窗交点拾取
  17. (setq ss (ssget ":D" '((0 . "LINE"))));会累加选取的直线,同一条直线,选取两次个数就会乘以2,3次则3.....
  18. (setq ss (ssget ":L" '((0 . "LINE"))));提示有几个在锁定图上,选取没有的锁定的直线
  19. (setq ss (ssget "P" '((0 . "LINE"))));上次的选择集
  20. (setq ss (ssget '((0 . "line")(8 . "~0"))));选取0层以外的线
  21. (setq ss (ssget '((0 . "line")(8 . "~*[a-A-z-Z]*"))));选取图层名不含字母以外的线
  22. (setq ss (ssget '((0."CIRCLE") (-3 ("APPNAME")))));选取带扩展数据的实体(圆)
  23. ;得到矩形p1 p2点框内的文字,包含在框内的被选取 相交的不选取,屏幕外的选取不到,WP点集
  24. (setq ss(ssget "w" pt1 pt3 '((0 . "*text"))))
  25. ;得到矩形p1 p2点框内的文字,包含在框内的及和框相交的被选取,屏幕外的选取不到,CP点集
  26. (setq ss(ssget "c" pt1 pt3 '((0 . "*text"))))
  27. ;线相交的线删除(屏幕外的选取不到郁闷所以要用zoom "ob")
  28. (defun c:XX( / pt ptl ss)
  29.  (setq ptl nil)
  30.  (while (setq pt (getpoint))
  31.  (setq ptl (cons pt ptl))
  32.  )
  33. (setq ss (ssget "f" ptl '((0 . "line"))))
  34.  (KX-E SS)
  35. )
  36. ;选取图层表("CENTER" "DIM" "COOL" "CORE" -------N个图层)内的线
  37. (setq la '("CENTER" "DIM" "COOL" "CORE")
  38. ss (ssget (list '(0 . "LINE") (cons 8 (apply 'strcat (mapcar '(lambda (x) (strcat x ",")) la)))))
  39. )
  40. ;选取经过某点的实体
  41. (setq pt (getpoint))
  42. (setq ss (ssget "C" pt pt))
  43. ;选取不含数字的文本
  44. (setq ss (ssget '
  45.  ((-4 . ")
  46.  (0 . "*TEXT")
  47.  (-4 . ")
  48.  (1 . "*[0-9]*")
  49.  (-4 . "NOT>")
  50.  (-4 . "AND>")
  51.  )
  52.  )
  53. )
  54. ;只选取不含字母的文本
  55. (setq ss (ssget '
  56.  ((-4 . ")
  57.  (0 . "*TEXT")
  58.  (-4 . ")
  59.  (1 . "*[a-A-z-Z]*")
  60.  (-4 . "NOT>")
  61.  (-4 . "AND>")
  62.  )
  63.  )
  64. )
  65. ;------------------------------------------------------------------------------------------------------------
  66. ;"图层1" "图层2""图层n中的文本,图层1为层名
  67. (SETQ SS (ssget "x"
  68.  (list
  69. '(0 . "TEXT")
  70.  (cons 8 "图层[1-n]")
  71.  )
  72.  )
  73. )
  74. ;------------------------------------------------------------------------------------------------------------
  75. ;选取0层以外的线
  76.  (setq ss
  77.  (ssget '
  78.  ((-4 . ")
  79.  (0 . "line")
  80.  (-4 . ")
  81.  (8 . "0")
  82.  (-4 . "NOT>")
  83.  (-4 . "AND>")
  84.  )
  85.  )
  86.  )
  87. ;------------------------------------------------------------------------------------------------------------
  88. ;按颜色号选取对象
  89. (setq col (KX-Int 7 "" "颜色号" col 1))
  90. (setq SS (ssget
  91.  (list
  92. '(-4 . ")
  93.  (cons 62 COL)
  94. '(-4 . "OR>")
  95.  )
  96.  )
  97. )
  98. ;-----------------------------------------------------------------------------------------------------------
  99. ;选取含KX的文本
  100. (setq XT (strcat "*" "KX" "*"));KX为文字内容
  101. (ssget (list
  102. '(0 . "text")
  103.  (cons 1 XT)
  104.  )
  105. )
  106. ;-----------------------------------------------------------------------------------------------------------
  107. ;判断选取某个区域有没有直线
  108. (setq SS (ssget "c"
  109.  (polar '(0 0) (* 0.25 pi) 0.5);坐标点
  110.  (polar '(0 0) (* 1.25 pi) 0.5);坐标点
  111. '((0 . "LINE"))
  112.  )
  113. )
  114. ;-----------------------------------------------------------------------------------------------------------
  115. ;选取颜色不是随层的圆、直线
  116. (setq SS (ssget "X"
  117. '((0 . "CIRCLE,LINE")
  118.  (-4 . "/=")(62 . 256);-4 62"面不可以加AND OR
  119.  )
  120.  )
  121. )
  122. ;------------------------------------------------------------------------------------------------------------
  123. ;选取颜色1和2的对象(OR)的用法
  124. (setq ss (ssget '((-4 . ")
  125.  (62 . 2)
  126.  (62 . 1)
  127.  (-4 . "or>")
  128.  )
  129.  )
  130. )
  131. ;--------------------------------------------------------------------------------------------------------------
  132. ;选取半径大于20小于100的圆
  133. (setq ss (ssget '
  134.  ((-4 . ")
  135.  (0 . "circle")
  136.  (-4 . ">")(40 . 20);大于20
  137.  (-4 . "<")(40 . 100);小于100
  138.  (-4 . "and>")
  139.  )
  140.  )
  141. )
  142. ;--------------------------------------------------------------------------------------------------------------
  143. ;只选取"文字(包括多行文字)、尺寸、带属性的块
  144. (setq ss (SSGET '
  145.  ((-4 . ")
  146.  (0 . "*TEXT,DIMENSION")
  147.  (-4 . ")
  148.  (0 . "INSERT")
  149.  (66 . 1)
  150.  (-4 . "AND>")
  151.  (-4 . "OR>")
  152.  )
  153.  )
  154. )
  155. ;--------------------------------------------------------------------------------------------------------------
  156. ;屏幕外的窗口模式选取
  157. (setq rec_p1 '(0 0)) ;窗口左下角点
  158. (setq rec_p2 '(1000 1000)) ;窗口右上角点
  159. (setq filter_list
  160.  (list
  161. '(0 . "insert")
  162. '(-4 . ")
  163. '(-4 . ">,>,*") (cons 10 rec_p1)
  164. '(-4 . "<,<,*") (cons 10 rec_p2)
  165. '(-4 . "and>")
  166.  )
  167. )
  168. (ssget "x" filter_list)
  169. ;--------------------------------------------------------------------------------------------------------------
  170. ;--------------------------------------------------------------------------------------------------------------
  171. ;一次产生n个不同选取集
  172. (if (setq ss (ssget)) (setq ss1 (ssget "_p" '((0 . "*TEXT")))));从选择集中分解出文字
  173. ;空回车得出不同结果的选取集
  174. (if (setq ss (ssget))
  175.  (setq ss (ssget "_p" flt))
  176.  (setq ss (ssget "_x" flt))
  177. )
  178. ;--------------------------------------------------------------------------------------------------------------
  179. ;;;坐标范围选择,有点类似(ssget "c" p1 p2 filter),但本函数在屏幕外的也可选择
  180. ;;;测试 (tt (getpoint) (getpoint) '((0 . "insert")))
  181. (defun tt (p1 p2 filter / minX minY maxX maxY)
  182. (setq minX (min (car p1) (car p2))
  183. minY (min (cadr p1) (cadr p2))
  184. maxX (max (car p1) (car p2))
  185. maxY (max (cadr p1) (cadr p2))
  186. )
  187. (if filter
  188.  (ssget "x"
  189.  (append (list '(-4 . ")
  190. '(-4 . ">=,>=,*")
  191.  (list 10 minX minY 0)
  192. '(-4 . "<=,<=,*")
  193.  (list 10 maxX maxY 0)
  194.  )
  195.  (append filter '((-4 . "and>")))
  196.  )
  197.  )
  198.  (ssget "X"
  199.  (list '(-4 . ")
  200. '(-4 . ">=,>=,*")
  201.  (list 10 minX minY 0)
  202. '(-4 . "<=,<=,*")
  203.  (list 10 maxX maxY 0)
  204. '(-4 . "and>")

猜你喜欢

转载自blog.csdn.net/pangshaohua/article/details/54561556
今日推荐