设置哪些对象既是被选取的又是被夹取的
(sssetfirst gripset[pickset])
gripset 参数指定的选择集中的对象是被夹取的,而 pickset 参数指定的选择集中的对象是既被夹取的又被选取的。如果两个选择集有公共部分(即某些对象同时属于这两个选择集), sssetfirst 函数将只选择和夹取 pickset 指定的选择集(而不夹取 gripset 选择集)。
在使用该函数时,需要由用户构建有效的选择集。例如,可能需要确认在选择集中不包含背景图纸空间视口(DXF 组码为 69),或者确定选定的对象属于当前布局,如下述代码所示:
(setq ss (ssget (list (cons 410 (getvar "ctab")))))
参数
gripset
要夹取的选择集。如果 gripset 为 nil 且已指定 pickset,则 sssetfirst 夹取并选择 pickset。如果 gripset 为 nil 且未指定 pickset,则 sssetfirst 关闭原来打开的夹点句柄和选择集。
pickset
将被选择的选择集。
返回值
选择集或指定的集。
示例
首先,绘制一个正方形并建立三个选择集。开始实现绘制边 1,并创建一个包含该线的选择集:
命令: (entmake (list (cons 0 "line") '(10 0.0 0.0 0.0)'(11 0.0 10.0 0.0)))
((0 . "line") (10 0.0 0.0 0.0) (11 0.0 10.0 0.0))
命令: (setq gripset (ssget "_l"))
<Selection set: a5>
变量 gripset 指向创建的选择集。
绘制边 2 并将其添加到 gripset 选择集:
命令: (entmake (list (cons 0 "line") '(10 0.0 10.0 0.0)'(11 10.0 10.0 0.0)))
((0 . "line") (10 0.0 10.0 0.0) (11 10.0 10.0 0.0))
命令: (ssadd (entlast) gripset)
<Selection set: a5>
创建另一个选择集,使之仅包含边 2:
命令: (setq 2onlyset (ssget "_l"))
<Selection set: a8>
绘制边 3 并将其添加到 gripset 选择集:
命令: (entmake (list (cons 0 "line") '(10 10.0 10.0 0.0)'(11 10.0 0.0 0.0)))
((0 . "line") (10 10.0 10.0 0.0) (11 10.0 0.0 0.0))
命令: (ssadd (entlast) gripset)
<Selection set: a5>
创建另一个选择集,使之仅包含边 3:
命令: (setq pickset (ssget "_l"))
<Selection set: ab>
变量 pickset 指向新的选择集。
绘制边 4 并将其添加到 gripset 和 pickset 选择集:
命令: (entmake (list (cons 0 "line") '(10 10.0 0.0 0.0)'(11 0.0 0.0 0.0)))
((0 . "line") (10 10.0 0.0 0.0) (11 0.0 0.0 0.0))
命令: (ssadd (entlast) gripset)
<Selection set: a5>
命令: (ssadd (entlast) pickset)
<Selection set: ab>
这时,gripset 包含边 1-4,pickset 包含边 3 和 4,2onlyset 仅包含边 2。
打开 gripset 选择集中所有对象的夹点句柄:
命令: (sssetfirst gripset)
(<Selection set: a5>)
关闭 gripset 中所有对象的夹点句柄:
命令: (sssetfirst nil)
(nil)
打开夹点句柄并选择 pickset 中的所有对象:
命令: (sssetfirst nil pickset)
(nil <Selection set: ab>)
打开 2onlyset 中所有对象的夹点句柄,并选择 pickset 中的所有对象:
命令: (sssetfirst 2onlyset pickset)
(<Selection set: a8> <Selection set: ab>)
每次调用 sssetfirst 都替换了上一次调用 sssetfirst 夹取和选择的选择集。例如,在执行下述命令后,2onlyset 中的夹点打开,而没有选定选择集:
命令: (sssetfirst 2onlyset
(<Selection set: a8>)
注意 不要在 AutoCAD 执行命令的过程中调用 sssetfirst。
参阅
ssget 和 ssgetfirst 函数。
明经通道 版权所有 未经许可 不得传播 | 评论 |