- UID
- 36203
- 积分
- 807
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2003-3-16
- 最后登录
- 1970-1-1
|
发表于 2005-3-26 09:38:48
|
显示全部楼层
第十三章 -- AutoLISP 函数列表
ssget
提示用户选择对象(图元),并返回一个选择集
(ssget [mode] [pt1 [pt2]] [pt-list] [filter-list])
mode 参数是一个用于指定对象选择方式的字符串。合法的 mode 值有 "W"、"WP"、"C"、"CP"、"L"
、"P"、"I" 和 "F",它们分别对应于 Window、WPolygon、Crossing、CPolygon、Last、Previous、
Implied 和 Fence 选择方式。另一种可选的 mode 值是 "X",它用于选择整个数据库。参数 pt1 和 pt2
指定与选择有关的点。调用 ssget 函数时仅提供一个点而不提供 mode 参数,等价于拾取单个点来选择对象。ssget 函数忽略 Object Snap(对象捕捉模式)的当前设置(除非在调用本函数时专门指定它)。filter-list 参数是指定对象特征的一个关联表,只有与 filter-list 相匹配的那些对象才被加入到选择集中。如果调用 ssget 函数时省略了所有的参数,则 ssget 函数给出“选择对象”提示,允许用户交互式地构造选择集。
选择集中可以包含图纸空间和模型空间两个空间中的对象,但该选择集用于某操作时,那些在当前无效的空间中的对象会被过滤掉。由 ssget 函数返回的选择集中仅包含主图元(不包含属性和多段线顶点)。
(ssget) 用普通的对象选择方式选择对象,
创建一个选择集
(ssget "P") 创建一个选择集,该选择集由最近所选择的
对象组成
(ssget "L") 创建一个选择集,该选择集由数据库中最新的
可见对象组成
(ssget "I") 创建一个选择集,该选择集由隐含选择集中的对象(PICKFIRST
生效时所选择的那些对象)组成
(ssget '(2 2)) 创建一个选择集,该选择集由通过点 (2,2) 的
对象组成
(ssget "W" '(0 0) '(5 5)) 创建一个选择集,该选择集由从 (0,0) 到 (5,5) 的窗口中
包含的所有对象组成
(ssget "C" '(0 0) '(1 1)) 创建一个选择集,该选择集由交叉窗选而成,交叉窗口
的对角顶点是 (0,0) 和 (1,1)
(ssget "X") 创建一个选择集,该选择集由数据库中的
的所有对象组成
(ssget "X" filter-list) 搜索图形数据库,创建一个选择集,其中包括
与 filter-list 相匹配的所有对象
(ssget filter-list) 用普通的对象选择方式选择对象,
但只将选择的对象中与 filter-list 相匹配的对象
放入创建的选择集中
(ssget "P" filter-list) 创建一个选择集,该选择集由最近所选择的
对象中与 filter-list 相匹配的那些对象组成
下例中的 ssget 函数需要传入一个点序列,由点序列 pt_list 定义的线中不能有长度为0 的段。
(setq pt_list '((1 1)(3 1)(5 2)(2 4)) )
(ssget "WP" pt_list) 创建一个选择集,该选择集由 pt_list
所定义的多边形包含的所有图元组成
(ssget "CP" pt_list) 创建一个选择集,该选择集由 pt_list 所定义
的多边形包含或与之相交的所有图元组成
(ssget "F" pt_list) 创建一个选择集,其中包含所有与 pt_list
所定义的多段线相交的所有图元
(ssget "WP" pt_list filter-list) 创建一个选择集,该选择集由 pt_list
所定义的多边形包含的所有图元中与
filter-list 相匹配的图元组成
只有在调用 ssget 函数不带参数时,被选取的对象才被突出显示。选择集会消耗 AutoCAD 的临时文件存储区,AutoLISP 不允许同时打开多于 128 个选择集。如果选择集的数目达到了这个极限,AutoCAD
会拒绝再创建新的选择集,以后调用 ssget 函数只会返回 nil。可以通过将选择集设为 nil 来关闭不再需要的选择集。
在任何可以用 Last 选择方式来响应 AutoCAD 的选择对象提示的地方,都可以通过向 AutoCAD 传递一个选择集变量来响应之,它将选择该选择集变量中的所有对象。
本部分内容包括:
<> 选择集过滤器 |
|