【Visual Lisp】图元选择集专题

图元选择集专题

;;★★★01.选择集操作★★★

(setq ss (ssadd));;创建一个空选择集

(ssadd (car(entsel)) ss);;将点取的图元添加到ss选择集中,可以不用setq语句图元便加入ss所指向的选择集

(ssdel en1 ss);;将en1图元从ss中删除

(ssmemb (car (entsel)) ss);;测试图元名所表示的对象是否在选择集中,在则返回图元名,否则返回nil

(ssname ss 0);;根据索引获取选择集中的图元名.使用repeat或者while来遍历选择集

(sslength ss);;返回选择集元素个数

注意:用ssadd或者其他方式创建了选择集使用完后要记得清空,否则下次创建变量名相同的选择集可能包含之前的选择集的图元。特别注意循环的情况。所以用完后记得(setq ss nil);;★★★02.ssget专题★★★

(ssget);;鼠标去框选窗选图元创建选择集

(ssget '((0 . "TEXT") (62 . 3)));;(ssget 过滤表)的形式,图元必须满足过滤表中所有条件才可被选中。过滤表使用 '修饰表示时不能使用变量,可以使用(list (cons 0 etype) (cons
62 color))的形式来表示,etype和color为变量

(ssget "-P");;此方法同(ssget)只是此处可以在执行前先选好图元然后执行此命令后创建的就是之前选中图元的选择集[此方法用的多]

(ssget "P");;此方法是创建最近一次选中的图元组成的选择集,也就是说当下没有选中图元执行命令后将创建之前有选中过图元组成的选择集,此方法不用鼠标去选。

(ssget "C" pt1 pt2 [过滤器表]);;创建在以pt1 pt2为对角线的矩形或者接触这个矩形范围的图元组成的选择集(pt1和pt2为矩形的对角点)。过滤表同上

(ssget "CP" pt_list [过滤器表]);;pt_list为点组成的表(list pt1 pt2 pt3)也就是由这些点所围多边形内进行窗交然后根据过滤表来创建选择集

(ssget "W" pt1 pt2 [过滤器表]);;创建在以pt1 pt2为对角线的矩形范围内图元组成的选择集

(ssget "WP" pt_list [过滤器表]);;pt_list为点组成的表(list pt1 pt2 pt3)也就是由这些点所围多边形内进行窗选然后根据过滤表来创建选择集

(ssget ":E" [过滤器表]);;相当于用entsel去一个一个点选对象,如果没有点选到也继续提示点选直到右键。而entsel没点选到则返回nil

(ssget ":S" [过滤器表]);;只允许在图中选择一次。生成满足过滤表的这一次选择的图元组成的选择集

(ssget "X" [过滤器表]);;在CAD中所有满足过滤表的图元组成的表(不对块中的处理)

;;要点

;;01.在使用ssget和ssadd创建选择集时我们所设定的变量仅仅是指向这个选择集,选择集修改后所有指向该选择集的变量代表的选择集都跟着修改比如(setq ss1 (ssadd)) (setq ss2 ss1) (ssadd en1 ss1)在这里ss1和ss2是完全等价的,通过用ss1修改选择集,ss2也一样修改,注意等价关系。

;;02.[过滤器表]的两种形式可以是用 '修饰(内部不能用变量) 也可以用(list
(cons a b) (cons c d))的形式

;;03.[过滤器表]内的-4组合

;;或:'((-4 . "<OR")(0 . "LINE")
(0 . "TEXT")(-4 . "OR>"))

;;且:'((-4 . "<AND")(0 . "TEXT")
(62 . 3)(-4 . "AND>"))

;;非:not格式同上

;;异或:xor 两者取其一

;;关系运算:'((0 . "CIRCLE") (-4
.">=") (40 . 2.0))过滤出半径大于等于2的圆。其它运算符同格式(注意关系运算符用双引号)

HGD2-LSP选择集专题-网络整理的更多相关文章

  1. 【Visual Lisp】图元选择集专题

    图元选择集专题;;★★★01.选择集操作★★★(setq ss (ssadd));;创建一个空选择集(ssadd (car(entsel)) ss);;将点取的图元添加到ss选择集中,可以不用setq ...

  2. 【 D3.js 选择集与数据详解 — 5 】 处理模板的应用

    在[选择集与数据 - 4]一文中,介绍了一个update.enter.exit的处理模板,这个模板很常用,本文将通过一个例子来讲解其使用方法. 1. 模板 复习一下上一章提到的模板. //绑定数据后, ...

  3. 【 D3.js 选择集与数据详解 — 4 】 enter和exit的处理方法以及处理模板

    绑定数据之后,选择集分为三部分:update.enter.exit.这三部分的处理办法是什么呢?本文将讲解其处理方法,以及一个常用的处理模板. 1. enter的处理方法 如果没有足够的元素,那么处理 ...

  4. 【 D3.js 选择集与数据详解 — 3 】 绑定数据的顺序

    data() 函数有两个参数,第一个是被绑定数据,第二个参数用于指定绑定的顺序.在数据需要更新的时候常常会用到. 默认的情况下,data()函数是按照索引号依次绑定数组各项的.第0个元素绑定数组的第0 ...

  5. 【 D3.js 选择集与数据详解 — 2 】 使用data()绑定数据

    D3 中绑定数据大多是由 data() 函数来完成的,它是怎样工作的,它与 datum() 有什么区别呢? data()函数能够将数组各项分别绑定到各元素上,而且能够设置绑定的规则.data()还能够 ...

  6. 【 D3.js 选择集与数据详解 — 1 】 使用datum()绑定数据

    选择集和数据的关系是 D3 最重要的基础,在[入门 - 第 7 章]时进行过些许讲解,对于要掌握好 D3 是远远不够的.故此开设一个新的分类,专门讨论选择集与数据的关系,包括数据绑定的使用和工作原理, ...

  7. Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第五集之网络配置】

    还有对第五集的补充:https://www.cnblogs.com/lirenhe/p/10405069.html 1,如果不为这个linux系统或者这台虚拟机配置IP,就不能实现通信.这样的之后安装 ...

  8. Leetcode之并查集专题-765. 情侣牵手(Couples Holding Hands)

    Leetcode之并查集专题-765. 情侣牵手(Couples Holding Hands) N 对情侣坐在连续排列的 2N 个座位上,想要牵到对方的手. 计算最少交换座位的次数,以便每对情侣可以并 ...

  9. D3.js的基础部分之选择集的处理 过滤器、选择集的顺序、each()和call()的应用(v3版本)

    选择集的处理 : 过滤器 有时候需要根据绑定数据对某选择集的元素进行过滤,例如某公司,只对id大于100的员工进行奖励.某学校只选拔身高超过170cm的学生等.类似这样的问题,需要根据条件获取选择集的 ...

  10. D3.js的基础部分之选择集的处理 enter和exit的处理方法 (v3版本)

    上一节给大家讲述额绑定数据的原理.当数组的长度与元素的数量不一致时,有enter部分和exit部分,前者表示存在多余的数据,后者表示存在多余的元素.本节将给大家介绍如何处理这些多余的东西,最后会给大家 ...

随机推荐

  1. pgsql指定部分字段去重

    -- 基于ig.start_pile,ig.end_pile 字段去重 with ete as ( SELECT * from (SELECT ROW_NUMBER() OVER(PARTITION ...

  2. eclipse 提示错误The method of type must override a superclass method 的解决办法

    java1.5中继承接口是不需要@Override的,而在1.6以上版本中是需要添加@Override注解的,如果项目的编译器是1.5版本的就可能报错The method *** of type mu ...

  3. C# NN算法实现

    NN算法的核心是,欧式距离(Euclid),在分类的数据中,找到与目标数据欧式距离最近的点,把目标点分类到其类,算法很简单,下面是C#代码的实现: namespace LocationService. ...

  4. mysql的日期输出格式列出来

    mysql的日期输出格式列出来: %a 缩写星期名 %b 缩写月名 %c 月,数值 %D 带有英文前缀的月中的天 %d 月的天,数值(00-31) %e 月的天,数值(0-31) %f 微秒 %H 小 ...

  5. mysql-逗号分隔关联查询

    牛逼plus 每天一个知识点 tableA id num 1 1001,1002 2 1002 tableB id num name 1 1001 A 2 1002 B 想要的结果: id name ...

  6. Python day 02 知识点学习

    1.格式化输出中,如果想单纯打出%,可以在%后面再跟一个%来转义达到效果.如下图: 2.while else 循环中,如果while循环被 break 打断,不会执行else结果,如下图:  初始编码 ...

  7. 【编程】Python3 正则表达式使用笔记

    前言 Python 从1.5版本开始使用re模块来处理正则表达式.我们可以使用"re模块"或"re.compile方法"来创建正则表达式对象(re.RegexO ...

  8. C和C++内存分配语法补充

    NOTE: 动态内存分配:需要加载头文件<stdlib.h>malloc(m):开辟m字节长度的地址空间,并返回首地址sizeof(x):计算变量x的长度free(p):释放指针p所指的存 ...

  9. 【Android报错】FileNotFoundException open failed:文件路径 EPERM (Operation not permitted)外部存储至根目录报错,Android外部存储权限动态获取问题

    报错:FileNotFoundException open failed: XXXXXXX EPERM (Operation not permitted) 查了下,大概原因是因为权限的问题.(小白学A ...

  10. 2月26日Android学习

    今天下载了AndroidStudio,但是不知道为什么java文件一直显示file outside of source root,可能是部分文件没有安装的原因,等文件全部下载完之后再看看.