明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2364|回复: 2

请问sssetfirst函数?

[复制链接]
发表于 2003-8-5 11:47 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2003-8-8 13:00:10 编辑

我看了AutoCAD帮助文件关于sssetfirst函数的说明
设置哪些对象既是被选取的又是被夹取的(sssetfirst gripset [pickset]).
我不明白sssetfirst函数应用中"夹取"和"选取"是什么意思?
这个函数很有用吗?在什么情况下可以用上,可以解决什么问题?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2003-8-8 13:55 | 显示全部楼层
AUTOLISP參考手冊說明如下:

設定選取及掣點的物件
(sssetfirst gripset [pickset])

掣點 gripset 引數指定的物件選集,掣點並選取由pickset 指定的物件選集。如果有任何物件在兩個選集裡都有,sssetfirst 只掣點並選取由 pickset 指定的選集(它不會掣點 gripset
集)。
您負責建立有效的選集。例如:您可能需要確認選集中不包括背景圖紙空間視埠 (DXF 群組碼 69)。您可能也需要確定選取的物件屬於目前的配置,如下列程式碼所示:

(setq ss (ssget (list (cons 301 (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函數。
发表于 2018-1-11 23:21 | 显示全部楼层
不知是否已理解这个函数? 可否指点一二.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-19 22:04 , Processed in 0.410940 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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