图元选择集专题
;;★★★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的圆。其它运算符同格式(注意关系运算符用双引号)

【Visual Lisp】图元选择集专题的更多相关文章

  1. 【Visual Lisp】人机交互与数据处理(表除外)-lisp

    ;;本专题所讲述的内容是人机交互以及常规数据处理技术;;★★★01.人机交互★★★;;△△△键盘输入交互△△△(getint "请输入整数");;从键盘输入整数,如果不是整数则重复 ...

  2. 在Visual Lisp中处理自动化错误

    Handling Automation errors in Visual LISP 翻译自原文Kean's blog:http://through-the-interface.typepad.com/ ...

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

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

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

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

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

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

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

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

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

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

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

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

  9. 【Visual Lisp】Visual Lisp属性与方法

    说明:Visual Lisp属性的获取.赋值和方法的执行有多种形式.然而对于初学者来说一次性就要全部掌握显然是没有必要的,有时候每种方法都是通用的功能都一样我们就没有必要把所有方法都记住.我们只需要掌 ...

随机推荐

  1. Python os模块之文件操作

    基本概念:C:\\haoguo.txt 路径: C:\\ 文件名: haoguo 后缀名:.txt 1. 文件名与后缀分离 2. 路径与文件分离 3. 获取当前路径 4. 文件名与后缀合并 5. 路径 ...

  2. linux下编译bib、tex生成pdf文件

    实验: 在linux环境下,编译(英文)*.bib和*.tex文件,生成pdf文件. 环境: fedora 20(uname -a : Linux localhost.localdomain 3.19 ...

  3. JS valueOf与字符串

    js在处理字符串和数值加运算的时候会转换数值为字符串 然后执行字符串连接 在覆盖String.prototype.valueOf之前,new String(111)这样的字符串与数值加法也是字符串连接 ...

  4. Java调用第三方dll文件的使用方法 System.load()或System.loadLibrary()

    Java调用第三方dll文件的使用方法 public class OtherAdapter { static { //System.loadLibrary("Connector") ...

  5. dockManager中DockPanel的刷新问题!

    使用的是DevExpress的dockManager控件,新增一个DockPanel,在DockPanel中添加一个AxMapControl控件并设置默认加载地图. 实现效果图如下: 但是存在一个问题 ...

  6. vim符号列表窗口

    有时使用vim开发时,需要能够直观的查看文件的符号列表或者变量list,但是vim不直接支持这个功能,需要使用ctags的插件支持. 以下是在ubuntu下的详细设置方法: 步骤1:安装ctags u ...

  7. Firefox每次刷新时自动清空缓存的设置方法

    当我们开发网页应用时候,为了保证每次看到的页面是最新的,需要在刷新页面时清除页面缓存. 如果每次都手动清除比较麻烦,好在多数浏览器都支持自动清除缓存的功能. IE下我们可以将缓存设置为"每次 ...

  8. 在linux中添加ftp用户,并设置相应的权限

    在linux中添加ftp用户,并设置相应的权限,操作步骤如下: 1.环境:ftp为vsftp.被限制用户名为test.被限制路径为/home/test 2.建用户:在root用户下: useradd ...

  9. 搭建高可用mongodb集群(一)——配置mongodb

    在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写.海量数据高效存储.高可扩展性和高可用性这些难题.不过就是因为这些问题Nosql诞生了. NOSQL有这些优势: 大数据量,可以通过 ...

  10. Python执行命令行

    背景 我们知道,虽然会破坏平台独立性,但是有的时候需要在代码里面调用命令行来获取一些信息,那么了解在 Python 中如何执行命令行至关重要 使用介绍 Python 中使用命令行可以通过 subpro ...