AutoLisp从入门到放弃(十四)

AutoLisp选择集操作

  • AutoLisp从入门到放弃(十四)
    • 一、ssget
      • 1、函数说明
      • 2、参数说明
      • 3、代码示例
    • 二、ssadd、ssdel
      • 1、函数说明
      • 2、代码示例
    • 三、sslength
      • 1、函数说明
      • 2、代码示例
    • 四、ssmemb
      • 1、函数说明
      • 2、代码示例
    • 五、ssname
      • 1、函数说明
      • 2、代码示例
    • 六、ssnamex
      • 1、函数说明
      • 2、代码示例

本章主要讲解Autolisp中的选择集相关操作。

一、ssget

1、函数说明

函数 函数说明
(ssget [sel-method] [pt1 [pt2]] [pt-list] [filter-list]) 根据选定对象创建选择集。

选择集中可以包含图纸空间和模型空间两个空间中的对象,但该选择集用于某操作时,那些在当前无效的空间中的对象会被 ssget 过滤掉。由 ssget
函数返回的选择集中仅包含主图元(不包含属性和多段线顶点)。

2、参数说明

ssget最多可以输入5个参数,按照顺序依次为对象的选择方式、两个选择相关的点、一个选择相关的点表、一个实体属性的过滤表。

首先,我们来看第一个参数:实体选择方式。

实体选择方式通过不同的字符串来指定。

序号 参数字符串 说明
1 C 窗交。
2 CP 圈交(指定多段线内和与该多段线相交的所有对象)。
3 F 栏选。
4 I 隐含窗口选择(在执行 PICKFIRST 期间选择的对象)。
5 L 添加到数据库的最后一个可见对象。
6 P 最后一个创建的选择集。
7 W 窗口选择。
8 WP 圈围(指定多边形内的所有对象)。
9 X 整个数据库。如果指定了 X 选择方法,而又没有提供 filter-list 参数,则 ssget
选择数据库中的所有图元,包括关闭、冻结图层中的图元和可见屏幕外的图元。
10 :E 光标的对象选择拾取框中的所有对象。
11 :N 在执行 ssget 操作的过程中,为选定图元调用ssnamex
获得容器块和转换矩阵的附加信息。只有通过窗口、窗交点拾取等图形选择方法选定的图元,这一附加信息才可以使用。
12 :S 仅允许单一选择集。

第二三四个参数的作用均是用来确定选择集范围的。如果只是指定第二三个参数中的点坐标,则表示选择根据这两个点所确定的矩形范围内的实体。

如果指定了pt-list参数,则表示选择集范围为pt-list点列中的所有点围成的闭合区域。

最后一个参数则是确定要拾取的所有实体类型,指定该参数之后,在选择实体的时候只会选中该参数中指定的类型的实体。

3、代码示例

(ssget)  ;; 没有指定任何参数,直接执行选择实体的操作,拾取范围等参数由用户指定。
(ssget (list 0 0 0 ))  ;; 只指定了一个点坐标,表示选中通过该点的所有实体。
(ssget "C" (list 0 0 0) (list 1 1 0)) ;; 指定了两个点坐标,表明根据指定的选择方式选择两点围成的矩形内的所有实体。
(ssget "C" (list 0 0 0) (list 1 1 0) (list (cons 0 "LINE")))  ;; 指定了选择集过滤方式,只选择符合过滤条件中的属性的对象。

二、ssadd、ssdel

1、函数说明

函数 函数说明
(ssadd [ename [ss]]) 将对象(图元)加入到选择集中,或创建新的选择集。
(ssdel ename ss) 从选择集中撤消对象(图元)。

如果不带参数调用 ssadd 函数,它将创建不含任何成员的选择集(空选择集)。

2、代码示例

(setq #ss (ssadd))                ;; 创建一个空选择集
(ssadd (car(entsel)) #ss)        ;; 选择一个实体存放入上一步创建的选择集
(setq #ss1 (ssget "X"))            ;; 选择当前图纸空间中的所有实体
(ssdel (car(entsel)) #ss1)      ;; 选择一个实体在当前选择集中删除

三、sslength

1、函数说明

函数 函数说明
(sslength ss) 求出一个选择集中的对象(图元)数目,并将其作为一个整数返回。

2、代码示例

(setq #ss (ssget "X"))
(sslength #ss)                  ;; 返回当前选择集中的实体数量。

四、ssmemb

1、函数说明

函数 函数说明
(ssmemb ename ss) 测试某对象(图元)是否是选择集的成员。

如果 ename 是 ss 的成员,ssmemb 返回图元名称。如果 ename 不是成员,ssmemb 返回 nil。

2、代码示例

(setq #ss (ssget "X"))
(ssmemb (car(entsel)) #ss)

五、ssname

1、函数说明

函数 函数说明
(ssname ss index) 返回选择集中由序号指定的那个对象(图元)的图元名。

2、代码示例

(setq #ss (ssget "X"))
(ssname #ss 0)              ;; 返回选择集中第一个实体的实体名。

六、ssnamex

1、函数说明

函数 函数说明
(ssnamex ss [index]) 本函数只能查找当前图形模型空间和图纸空间中的图元,而不能查找非图形对象和其他块定义中的图元。

如果成功,ssnamex 返回 index 指定的图元名,以及如何选中该图元的说明数据。如果没有提供 index 参数,本函数将返回一个表,表中包括该选择集中的每个元素的图元名和如何选中该图元的说明数据。如果 index 为负数或超出了选择集中的最高图元序号,ssnamex 返回 nil。

ssnamex 函数返回的数据是一个表的列表,表中的每个子表要么包含描述图元和其选择方式的信息,要么包含描述用来选择一个或多个图元的多边形的信息。每一个描述选择集中某个图元的子表都包括三个部分:选择方式的 ID 号(大于或等于 0 的整数),被选图元的图元名,和与图元选择方式有关的特定数据(它用于描述图元是如何被选中的)。

((sel_id1 ename1 (data))(sel_id2ename2 (data)) ... )

下表列出了选择方式的 ID:

选择方式 ID
ID 说明
0 没有特殊信息(如 Last All)
1 拾取
2 窗口或圈围
3 窗交或圈交
4 栏选

用来描述选择图元所用多边形的子表格式如下:先是一个多边形 ID 号(小于 0 的整数),接着是点的描述符。

(polygon_idpoint_description_1point_description_n... )

多边形 ID 号从 -1 开始并以 -1 递减。由于和显示位置有关,点用以下几种方式描述:无限长直线、射线或线段。每个点的描述符包括三个部分:点描述符 ID 号(要描述的项的类型)、该项的起点和一个可选的单位向量,该单位向量或者用来描述无限长线的方向,或者用来描述线段另外一端的偏移量。

(point_descriptor_idbase_point[unit_or_offset_vector])

下表列出了有效的点描述符的 ID 号:

点描述符 ID
ID 说明
0 无限长线
1 射线
2 直线线段

如果视点不是 0,0,1,将返回 unit_or_offset_vector。

2、代码示例

(ssnamex (ssget "X") 0)

AutoLisp从入门到放弃(十四)相关推荐

  1. keras从入门到放弃(十四)模型的保存

    今天来探讨模型的保存 Keras使用HDF5文件系统来保存模型.模型保存的方法很容易,只需要使用save()方法即可. 上次训练好了手写数字识别数据集,今天学会如何保存数据集 保存/加载整个模型 Ke ...

  2. AutoLisp从入门到放弃(十)

    AutoLisp从入门到放弃(十) 一.角度计算(angle) 二.距离计算(distance) 三.点坐标偏移计算(polar) 四.计算两直线交点(inters) 五.获取捕捉点(osnap) 本 ...

  3. AutoLisp从入门到放弃(十二)

    AutoLisp从入门到放弃(十二) 一.文件操作 1.打开文件(open) 2.读文件(read-line.read-char) 3.写文件(write-line.write-char) 4.关闭文 ...

  4. AutoLisp从入门到放弃(五)

    AutoLisp从入门到放弃(五) 一.列表(LIST) 1.列表的创建 2.操作列表常用函数 二.DXF组码 1.DXF组码文件基本结构 2.DXF组码值类型 本章将介绍通过AutoLisp代码来查 ...

  5. 鸡啄米之VS2010/MFC编程入门之二十四(常用控件:列表框控件ListBox)

    目录 一.目的: 1.点击列表框某个变量后,编辑框就显示出来这个变量名字 一.参考: 1.VS2010/MFC编程入门之二十四(常用控件:列表框控件ListBox) ①总结:good:亲测有效,适合多 ...

  6. 深度学习入门笔记(十四):Softmax

    欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...

  7. System Generator从入门到放弃(十)-ADC应用之音频信号采集与输出

    System Generator从入门到放弃(十)-ADC应用之音频信号采集与输出 文章目录 System Generator从入门到放弃(十)-ADC应用之音频信号采集与输出 一.ADC应用之音频信 ...

  8. Unity3D 从入门到放弃(四)----打飞碟

    Unity3D 从入门到放弃(四) -–打飞碟 填坑计划的万恶之源 写在开头: 本来感觉应该是不会写博客的,而且也不是很擅长写 博客.但在后来,突然醒悟到,博客这个东西,实际上并不是给别人看的(感觉也 ...

  9. 深度学习入门(二十四)卷积神经网络——填充和步幅

    深度学习入门(二十四)卷积神经网络--填充和步幅 前言 卷积神经网络--填充和步幅 课件 填充 步幅 总结 课本 1 填充 2 步幅 3 小结 前言 核心内容来自博客链接1博客连接2希望大家多多支持作 ...

最新文章

  1. JavaJDK中的命令行工具
  2. ubuntu 14.04 安装chrome及给chromium 安装 flash player
  3. 管理之道(三) - 不要吝惜赞美
  4. 《C++ Primer》读书笔记 第三章
  5. 学了python能干啥举例-第9p,Python是什么?学了Python能干什么?
  6. java异常处理拦截器
  7. XShell 6和Xftp6
  8. APISpace 绕口令API接口 免费好用
  9. php聚合话费充值怎么接,求充值话费接口
  10. javaScript搜索框
  11. 导致CreateWindow创建窗口失败的一种原因
  12. 【机器视觉】移动机器人控制软件的设计与实现
  13. 计算机设计大赛感言,计算机编程比赛获奖感言.doc
  14. FPGA_PCB 设计之一3.3V-LVTTL与3.3V-LVCMOS区别
  15. 使用SecureFX内容显示中文乱码问题
  16. ORA-28547:connection to server failed,probable Oracle net admin errror
  17. Python什么是状态机,状态机的简单应用
  18. bat添加修改注册表键值 批处理修改注册表项
  19. oracle数据库实现汇总报表的方法
  20. 【单片机毕业设计】【mcuclub-jj-011】基于单片机的加湿器的设计

热门文章

  1. 四川途志传媒:抖音直播带货靠谱吗?
  2. DES加密算法|密码学|网络空间安全
  3. 7-263 爱拼才会赢
  4. 《这世间,唯有青春与梦想不可辜负》
  5. 黑马最新前端项目【小兔鲜儿】!!!
  6. ElementUI:表格table列宽度压缩出现空白
  7. android sendEmptyMessage()和sendMessage()误用导致handleMessage出现错误
  8. XMLHttpRequest的基本使用
  9. 2.JFreeChart条形图
  10. 使用ASP.NET MVC开发企业招聘系统