CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2020 开发者帮助

ssget (AutoLISP)

2024-5-18 18:18| 发布者: admin| 查看: 90| 评论: 0|原作者: admin|来自: AutoCAD

ssget (AutoLISP)

从选定对象创建选择集

支持的平台:Windows 和 Mac OS

签名

(ssget [sel-method] [pt1 [pt2]] [pt-list] [filter-list])
sel-方法

类型:字符串

对象选择方法。

有效的选择方法包括

一个

所有对象都处于选中状态。

C

交叉选择;与指定矩形交叉和内部的所有对象。

CP公司

交叉多边形选择;所有对象在指定多边形内交叉和内部。

F

围栏选择。

隐含选择;在 AutoCAD PICKFIRST 系统变量生效时选定的对象。

注意:该函数返回有效的选择集或 。如果在调用函数时选择了对象,则返回有效的选择集。ssgetnil

L

添加到数据库的最后一个可见对象。

P

选择上一个选择集。

W

窗口选择(指定矩形内的所有对象)。

可湿性粉剂

窗口多边形(指定多边形内的所有对象)。

X

整个数据库。如果指定选择方法且未提供过滤器列表,则选择数据库中的所有图元,包括关闭、冻结和不在可见屏幕中的图层上的图元。Xssget

:D

允许选择重复对象。

:E

光标的对象选择选项框中的所有内容都将被选中并添加到选择集中。

:L

仅允许选择未锁定的图层。

:N

有关操作期间选择的任何实体的容器块和转换矩阵的其他信息。此附加信息仅适用于通过图形选择方法(如窗口、交叉和点选择)选择的图元。ssnamexssget

与其他对象选择方法不同,:N 可以在选择集中返回具有相同实体名称的多个实体。例如,如果用户选择复杂实体(如 BlockReference、PolygonMesh 或旧式折线)的子实体,则在确定是否已选择该子实体时,将查看该子实体。但是,实际上将主实体(BlockReference、PolygonMesh 等)添加到选择集中。结果可能是选择集中具有相同实体名称的多个条目(每个条目将具有不同的子实体信息以供报告)。ssgetssgetssnamex

_:R

允许选择长事务中的实体。

:S

只允许单个选择,可以选择一个或多个对象。

注意:使用“+.”和“:S”强制选择单个对象。

_:U

启用子实体选择。

不能与重复 (“:D”) 或嵌套 (“:N”) 选择模式结合使用。在此模式下,默认情况下会选择顶级实体,但用户可以在进行选择时尝试通过按 CTRL 键来选择子实体。此选项仅支持交互式选择,例如窗口、交叉和多边形。它不支持所有选择、筛选选择或组选择。

_:V

强制选择子实体。

将用户执行的所有交互式图形选择视为子实体选择。返回的选择集仅包含子图元。此选项不能与重复 (“:D”) 或嵌套 (“:N”) 选择模式结合使用。此选项仅支持交互式选择,例如窗口和交叉点。它不支持所有选择、筛选选择或组选择。

#

控制允许的对象选择模式。

  • “+”允许添加关键字“Last”、“All”和“Previous”。
  • “-”允许删除关键字“Last”、“All”、“Group”和“Previous”。
  • “.”强制用户使用指针设备“拾取”或输入有效的坐标值来选择对象。

    这不是一个显式关键字,而是一个隐含的关键字。

结合“+”和“-”,使用以下关键字控制相应的选择模式:

  • A - 全部
  • B - 盒子和 AUto
  • C - 交叉和 CPolygon
  • F - 围栏
  • G - 组
  • L - 楦
  • M - 多个
  • P - 上一页
  • W - 窗口和 WPolygon
;; Allow for a single selection
(ssget "_:S")

Select objects: ?
*Invalid selection*
Expects a point or Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Previous/AUto

;; Allow the user to only pick a single object
(ssget "_:S+.")

Select objects: ?
*Invalid selection*
Expects a single object.

;; Allow the user to only pick a single object or 
;; use the Last or Previous selection modes 
(ssget "_:S+L+P")

Select objects: ?
*Invalid selection*
Valid keywords: Last/Previous

;; Remove the Multiple and All selection modes
(ssget "-M-A")

Select objects: ?
*Invalid selection*
Expects a point or Window/Last/Crossing/BOX/Fence/WPolygon/CPolygon/Group/Add/Remove/Previous/Undo/AUto/SIngle
PT1 (英语:PT1)

类型:列表

相对于所选内容的点。

第2部分

类型:列表

相对于所选内容的点。

pt-列表

类型:列表

要点列表。

筛选器列表

类型:列表

指定对象属性的关联列表。与筛选器列表匹配的对象将添加到选择集中。

返回值

类型:Pickset(选择集)或 nil

如果成功,则为创建的选择集的名称;否则,如果未选择任何对象。nil

言论

选择集可以包含图纸空间和模型空间中的对象,但是在操作中使用选择集时,会从当前未生效的空间中过滤掉对象。返回的选择集仅包含主图元(不包含属性或折线顶点)。ssgetssget

如果省略所有参数,则会使用“选择对象”提示提示用户,从而允许以交互方式构造选择集。ssget

如果提供点但未指定对象选择方法,则 AutoCAD 假定用户通过选取单个点来选取对象。

  • 使用选择方法时,如果用户选择复杂实体(如 BlockReference、PolygonMesh 或旧式折线)的子实体,则在确定是否已选择该子实体时,将查看该子实体。但是,实际上将主实体(BlockReference、PolygonMesh 等)添加到选择集中。因此,可以在选择集中具有相同实体名称的多个条目(每个条目将具有不同的子实体信息以供报告)。由于该方法不保证每个条目都是唯一的,因此依赖于唯一性的代码不应使用使用此选项创建的选择集。:Nssgetssgetssnamex:N
  • 在 MDI 环境中使用选择方法时,不能总是指望最后绘制的对象保持可见。例如,如果应用程序绘制了一条线,而用户随后最小化或级联了 AutoCAD 图形窗口,则该线可能不再可见。如果发生这种情况,则 with the 选项将返回 。Lssget"L"nil

例子

提示用户选择要放置在选择集中的对象:

(ssget)
<Selection set: 2>

创建经过 (2,2) 的对象的选择集:

(ssget '(2 2))
nil

创建最近选定对象的选择集:

(ssget "_P")
<Selection set: 4>

创建从 (0,0) 到 (1,1) 之间穿过框的对象的选择集:

(ssget "_C" '(0 0) '(1 1))
<Selection set: b>

从 (0,0) 创建窗口内对象的选择集:

(ssget "_W" '(0 0) '(5 5))
<Selection set: d>

通过指定过滤器,可以获得一个选择集,其中包含给定类型、给定图层或给定颜色的所有对象。以下示例返回一个选择集,该选择集仅包含属于隐含选择集一部分的蓝线(在 AutoCAD PICKFIRST 系统变量生效时选定的对象):

(ssget "_I" '((0 . "LINE") (62 . 5)))
<Selection set: 4>

以下示例要求将点列表传递给函数。该变量不能包含定义零长度线段的点。ssgetpt_list

创建积分列表:

(setq pt_list '((1 1)(3 1)(5 2)(2 4)))
((1 1) (3 1) (5 2) (2 4))

创建由pt_list定义的多边形交叉和内部的所有对象的选择集:

(ssget "_CP" pt_list)
<Selection set: 13>

创建由pt_list定义的多边形内所有蓝线的选择集:

(ssget "_WP" pt_list '((0 . "LINE") (62 . 5)))
<Selection set: 8>

仅当不带参数使用时,才会突出显示所选对象。选择集会占用 AutoCAD 临时文件槽,因此 AutoLISP 不允许同时打开超过 128 个文件槽。如果达到此限制,AutoCAD 将无法再创建任何选择集并返回所有调用。要关闭不必要的选择集变量,请将其设置为 。ssgetnilssgetnil

可以将选择集变量传递给 AutoCAD,以响应任何“选择对象”提示,在“最后”选择有效时。然后,AutoCAD 将选择选择集变量中的所有对象。

对象捕捉模式的当前设置将被忽略,除非您在功能中明确请求它。ssget


路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2024-12-16 00:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部