- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章图形数据编辑函数课件
第八章图形数据编辑函数;8.1.4选择集
是实体的有序集合。(type 选择集)返回 PICKSET
注意:实体名和选择集只能从图形编辑期间从AutoCAD获得,并且在图形编辑期间才有效,当退出AutoCAD的图形编辑状态,他们被自动删除。只有实体标号和实体一起存入图形文件。在AutoCAD2000中,一个AutoLISP应用程序最多有128个选择集,不同版本个数不同。
8.2选择集操作函数
(ssget [sel-method] [pt1 [pt2]] [pt-list] [filter-list])
选择集中可以包含图纸空间和模型空间两个空间中的对象,但该选择集用于其操作时,那些在当前无效的空间中的对象会被 ssget 过滤掉。由 ssget 函数返回的选择集中仅包含主图元(不包含属性和多段线顶点)。
参数
sel-method
字符串,指定对象选择方法。;ssget的选项sel-method;说明:(ssget pt1)如果几个实体过点pt1,也只选择一个实体。
(ssget L) 可见最后生成的实体,不一定是最后生成的实体。;可用于所有实体的组码(常用的);例题:
(setq ss (ssget ((0 . TEXT))))
或 (setq ss (ssget (list (cons 0 TEXT))))
(setq layname FLOOR)
(setq s (ssget x (list (cons 0 CIRCLE) (cons 8 layname))))
提示用户选择要加入选择集的对象:
(ssget)
创建通过点 (2,2) 的对象的选择集:
(ssget (2 2))
创建一个选择集,该选择集由最近所选择的对象组成:
(ssget _P)
创建一个选择集,该选择集由交叉窗选而成,交叉窗口的对角顶点是 (0,0) 和 (1,1):
(ssget _C (0 0) (1 1))
;创建一个选择集,该选择集由从 (0,0) 到 (5,5) 的窗口中包含的所有对象组成:
(ssget _W (0 0) (5 5))
通过指定过滤器,可以获得由指定类型、图层或颜色的所有对象构成的选择集。下例返回的选择集仅包含隐含选择集中的蓝色直线(这些对象是在 PICKFIRST 有效时选取的):
(ssget _I ((0 . LINE) (62 . 5)))
下例中需要将点表传递给 ssget 函数。pt_list 变量不能包含定义零长度线段的点。
创建点表:
(setq pt_list ((1 1)(3 1)(5 2)(2 4)))
创建一个选择集,该选择集由 pt_list 所定义的多边形包含或与之相交的所有图元组成:
(ssget _CP pt_list)
创建一个选择集,该选择集由 pt_list 所定义的多边形包含的所有蓝色线段组成:
(ssget _WP pt_list ((0 . LINE) (62 . 5)))
;8.2.1.2过滤表中的通配符
与函数wcmatch相同。
通配符 定义
# (磅值符号)匹配任意单个数值字符
@ (at) 匹配任意单个字母字符
. (句号) 匹配任意单个非字母数值字符
* (星号) 匹配任意字符序列,包括空字符串,它可以出现在任何位置, 包括开头、中间和结尾处
? (问号) 匹配任意单个字符
~ (波浪号) 如果它是模式字符串的第一个字符,则匹配除此字符串之外的 任意字符串
[...] 匹配括号中的任意一个字符,如“FLR[1-5,8]
[~...] 匹配不在括号中的任意单个字符如[~A-G,X-Z]
- (连字符) 用在括号里面,用来指明单个字符的取值范围,如[1-5]
,(逗点) 分隔两个模式字符串
`(单引号) 特殊转义字符(按字义读取随后的字符) *`,* *`\\*;例如(ssget X ((6 . DASH*)))
8.2.1.3过滤表的关系运算符
如果没有指定关系运算符,对过滤器中的每一项都隐式使用等式测试。对于数字组(整数、实数、点和矢量),通过-4组码指定一种关系。-4组码的值是字符串,指定过滤器表中下一组的测试运算符。;按位运算符“”和“=”只对值为整数的组有效。((integer_group filter) /= 0),也就是说 integer_group 屏蔽位中有任一位为 1 时,按位与“”就为真。
只有 ((integer_group filter) = filter),也就是说 integer_group 所有屏蔽位全为 1 时,按位屏蔽相等“=”才为真(在 integer_group 中可能也设置了其他位,但不作检测)。 ;说明
对于点组,对X、Y、和Z坐标测试可以组合成单个字符串,只需将每个
文档评论(0)