找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 598|回复: 1

[求助] [求助]:选择集问题?

[复制链接]
发表于 2005-3-9 19:15:43 | 显示全部楼层 |阅读模式

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

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

×
请问兄台,在编写autolisp程序时,如何才能建立一个选择集只包含文字(既包含text又包含mtext的文字)呢?
还有两个选择集能不能相加成为一个新的选择集?要用到什么函数啊?
望兄台赐教,让小弟也学点,谢谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 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 传递一个选择集变量来响应之,它将选择该选择集变量中的所有对象。

本部分内容包括:

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 00:37 , Processed in 0.168225 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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