注册即可查看图片
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
SSGET 函数的使用 一. 功能 提示用户选择对象(图元),并返回一个选择集。 二. 格式 (ssget [mode] [pt1 [pt2]] [pt_list] [filter_list]) (SSGET [选取模式] [选取点] [选取点] [点串行] [过滤条件] ) 三. 说明 (一).函数调用中各变元的说明 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函数给出"Select object"提示,允许用户交互地构造选择集。 选择集中可以包含图纸空间和模型空间两个空间中的对象,但该选择集由某一种操作所使用时,在现行空间中无效的那些对象会被过滤掉。由ssget函数返回的选择集中仅包含主图元(不包含属性和多义线的顶点图元)。 下面给出一些使用实例。 (1)(ssget) 让用户用普通的对象选择方法选择对象,构成选择集。 (2)(ssget "P") 生成一个选择集,该选择集由最近所选择的那些对象所组成。 (3)(ssget "L") 生成一个选择集,该选择集由最后被增加到图形数据库中的那个可见对象组成。 (4)(ssget "I") 生成一个选择集,该选择集由PICKFIRST生效时所选择的那些对象组成。 (5)(ssget '(2,2)) 生成一个选择集,该选择由通过点(2,2)的那些对象组成。 (6)(ssget "w" (0 0) '(5 5)) 生成一个选择集,该选择集包含了由(0,0)到(5,5)定义的窗口中的所有对象。 (7)(ssget "c" '(0 0)'(1 1) 生成一个选择集,该选择集中既包含了由(0,0)到(1,1)定义的窗口中的所有对象,也包含了与这个窗口相交的那些对象。 (8)(ssget "X") 生成一个选择集,该选择集中包含了现行图形数据库中的所有对象。 (9)(ssget "X" filter_list) 扫描图形数据库,将与过滤表filter_list匹配的那些对象组成一个选择集并返回。 (10)(ssget filter_list) 让用户用一般的对象选择方式选择对象,将用户所选择的所用对象与过滤器表filter_list进行比较,只有与过滤器表相匹配的那些对象才放入到选择集中,最后返回所生成的这个选择集。 (11)(ssget "P" filter_list) 生成一个选择集,入选该选择集的条件是,它既是最近所选择的那些对象,且又满足过滤器的要求。 (12)(ssget "WP" pt_list) 生成一个选择集,该选择集中既包含了由点表pt_list定义的多边形中的所有对象。 (13)(ssget "cp" pt_list) 生成一个选择集,该选择集中既包含了由点表pt_list定义的多边形中的所有对象,也包含了与该多边形相交的那些对象。 (14)(ssget "F" pt_list) 生成一个选择集,该选择集中包含了与点表pt_list定义的多边形篱笆相交的全部对象。 (15)(ssget "wp" pt_list filter_list) 生成一个选择集,该选择集中的所有对象既必须处于由点表pt_list定义的多边形内,也必须满足过滤器表filter_list中的条件。 只有当一带变元调用ssget函数时,被选取的对象才会高亮显示。选择集会消耗AutoCAD临时文件存储区,AutoLISP不允许同时打开的选择集多于128个。如果选择集的数目达到了这个极限,AutoCAD会拒绝 再生成选择集,再调用更多次ssget函数也只能是返回nil。为了关闭不再需要的选择集。可以将它设置为nil。 对于任何以Last响应"Select object:"提示有效的地方,都可以向AutoCAD传递一个选择集变量。它将选择所传递的选择集中的所有对象。 (二).关于选择集中过滤器的进一步讨论 选择集过滤器表可以由任何方式所使用。您可以获得一个包含在给定图层上(或一个给定颜色、给定类型的全部对象的选择集。 下面的实例中,返回一个选择集,该选择集中仅包含在PICKFIRST方式有效时所选择的那些对象中,颜色为兰色的直线段。 (ssget "I" '((0. "LINE")(62.5))) 使用过滤器表,您也能选择属于一个特定申请的包含在扩展数据中的全部对象。要达到这一目的,需要按如下方式 -3组码: (ssget "P" '((0."CIRCLE")(-3 ("APPNAME")))) 上述代码选择了申请"APPNAME"中所包含的扩展数据 (1)过滤器表中的关系测试 除非特别指定,否则对过滤器表filter_list中的每一项都隐含了一个“相等”测试。对于数值组(整数、实数、点以及矢量), 通过包含了一个专用的-4组来指定一个关系运算符,您可以指定其它的关系。一个-4组的值是一个字符串,它用于指出要作用于过滤器表中随后的测试运算符。 (ssget "X" '(((0."CIRCLE")(-4.">=")(40.2.0)))) 上述表达式,将选择半径大于或等于2.0的所有圆来构成一个选择集。 下表中列出了过滤器表中所有可以使用的运算符。 选择集过滤器表中所用的关系运算符 "*" 任何情况(总是为真) "=" 等于 "!=" 不等于 "/=" 不等于 "<>" 不等于 "<" 小于 "<=" 小于或等于 ">" 大于 ">=" 大于或等于 "&" 按位于与(AND)(仅适用于组值为整型的组) "&=" 按位屏蔽相等(仅适用于组值为整型数的组)
|