总结得很好的ssget用法.....如此好文,必须转载.

原文地址: http://blog.csdn.net/yxp_xa/article/details/72229202

ssget 用法详解 by yxp 2017/04/10

ALisp 编程时 ssget 是无处不在的,灵活的选择集构建方式,可以轻松的处理图形,体现了 Lisp 相对其他语言的优点。

然而强大的 ssget 估计很多人都不清楚用法,包括各种教程对 ssget 的描述都不够完善,本文试图总结 ssget 的用法,不足之处请读者指正。

语法:

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

ssget 的参数均为可选参数,需要注意的是可选参数之间的组合条件。

以下语法表示中 <parameter> 尖括号代表必选,[parameter] 方括号代表可选。

一、选择集的窗口参数

  • [sel-method] 字符串类型,不区分大小写,指定一个选择方法。
  • [pt1 [pt2]] 表类型,由三个数字的点参数表,表示 xyz 坐标,也可以是仅包括xy 的坐标。
  • [pt-list] 表类型,由点参数表组成的表。

C 窗交(反选)

如果指定了该参数,则必须跟一对点创建一个矩形窗口,与矩形窗口相交的对象均被加入选择集。

参数语法: (ssget "c" <pt1> <pt2> [filter-list])

此时,[pt-list] 参数不能出现,否则 ssget 将会返回一个错误提示:错误的点参数

示例:

(setq pt1 (getpoint "First Pt:"))
(setq pt2 (getpoint "Second Pt:"))
(setq ss (ssget "c" pt1 pt2))

W 窗口(正选)

与 C 参数语法及用法类似,但功能不同,只有在矩形窗口内完整的对象才会被加入选择集。

参数语法: (ssget "w" <pt1> <pt2> [filter-list])

参数前加下划线 "_w" 可以使代码在不同版本的CAD平台下兼容,建议写上。

CP 圈交(多边形反选)

如果指定了该参数,则必须用构成多边形的点表响应,与多边形相交的对象被加入选择集。

参数语法: (ssget "CP" <pt-list> [filter-list])

此时点参数 [pt1] [pt2] 不能出现,而且,CP 参数依赖 <pt-list> 的顺序来构成一个多边形。

例如四个点按顺序连接为一个8字型,而不是一个矩形,ssget 将返回一个空选择集,即使对象与窗口相交。

如果参数为少于3个点的表,也将返回一个 nil

示例:

(setq pt1 (getpoint "Piont1:"))
(setq pt2 (getpoint "Piont2:"))
(setq pt3 (getpoint "Piont3:"))
(setq pt4 (getpoint "Piont4:"))
(setq ss (ssget "c" (list pt1 pt2 pt4 pt4)))

WP 圈围(多边形正选)

与 CP 参数语法及用法类似,但只有被多边形窗口包围的对象才会被加入选择集。

参数语法: (ssget "wp" <pt-list> [filter-list])

F 栏选

将参数点表连接为一条折线,与折线相交的对象被加入选择集。

参数语法: (ssget "f" <pt-list> [filter-list])

pt-list 最少由2个点组成表,CP/WP 参数最少需要 3 个点。

P 前一批创建的图形

包括 CAD 命令或 LISP 程序创建的图形对象。

参数语法: (ssget "p" [filter-list])

P 参数不能和 [pt1 [pt2]] [pt-list] 任何一个点参数组合,否则将返回一个错误,有的 CAD 版本会返回 nil

当分解(EXPLODE)一个 CAD 图形时,p 方法特别有用,可以一次性建立分解后的所有对象选择集。

L 最后一个创建的对象

包括 CAD 命令或 LISP 程序创建的对象,注意和 P 参数的区别。

参数语法: (ssget "l" [filter-list])

在获取最后一个对象的图元名时,以下代码是等价的,但是后者不能提供直接过滤功能。

(ssname (ssget "L") 0) == (entlast)

I 隐含窗口选择

参数语法: (ssget "i" [filter-list])

CAD 命令有两种执行方式,第一种先命令后选择,第二种先选择后命令。所以在 Lisp 中也允许先选择后命令,

而且这方式可以通过系统变量 pickfirst 来关闭(值为 0),此时 I 参数失效,(ssget "i") 将返回 nil。

选择对象后,可以用 (sssetfirst nil) 取消选择集的亮显状态。

X 整个文件

在当前打开的CAD文件中选择所有对象,包括关闭、冻结图层中的图元和可见屏幕外的图元,不分大小写。

参数语法: (ssget "x" [filter-list])

X 用法与 A 用法等价,(ssget "A") 也是选择所有对象。

:E 拾取框

用拾取框选择对象,此时 ssget 将不再拉出一个矩形窗口,直到点右键结束选择。

参数语法: (ssget ":E" [filter-list])

与 :E 对应的 :N 参数为只能拉出一个矩形窗口选择,而不能通过点选拾取对象。

:S 仅允许单一选择集

使用:s参数时,ssget 将点选对象一次就会结束,无论是否选中对象,未选中则返回 nil,可节省一次回车确认。

参数语法: (ssget ":S" [filter-list])

说明: ":S" 参数和 ":E" 可以同时使用,例如: (ssget "_:S:e")

以下参数可以组合使用, "+""-",例如:(ssget "_:S+D")

[转载]ssget 用法详解 by yxp的更多相关文章

  1. 转载 LayoutInflater的inflate函数用法详解

    http://www.open-open.com/lib/view/open1328837587484.html LayoutInflater的inflate函数用法详解 LayoutInflater ...

  2. Java 5 的新标准语法和用法详解集锦

    Java 5 的新标准语法和用法详解集锦 Java 5 的新标准语法和用法详解集锦 (需要在首选项-java-complier-compiler compliance level中设置为java5.0 ...

  3. Delphi TStringHelper用法详解

    Delphi TStringHelper用法详解 (2013-08-27 22:45:42) 转载▼ 标签: delphi_xe5 it 分类: Delphi Delphi XE4的TStringHe ...

  4. Java 注解用法详解——@SuppressWarnings

    转自: https://www.cnblogs.com/fsjohnhuang/p/4040785.html Java魔法堂:注解用法详解——@SuppressWarnings   一.前言 编码时我 ...

  5. Hadoop生态圈-zookeeper的API用法详解

    Hadoop生态圈-zookeeper的API用法详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.测试前准备 1>.开启集群 [yinzhengjie@s101 ~] ...

  6. C语言对文件的操作函数用法详解2

    fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const  ...

  7. C语言对文件的操作函数用法详解1

    在ANSIC中,对文件的操作分为两种方式,即: 流式文件操作 I/O文件操作 一.流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下: typedef str ...

  8. scrollTop、offsetHeight和offsetTop等属性用法详解--转转转

    scrollTop.offsetHeight和offsetTop等属性用法详解: 标题中的几个相关相关属性在网页中有这大量的应用,尤其是在运动框架中,但是由于有些属性相互之间的概念比较混杂或者浏览器兼 ...

  9. [转] C#-using用法详解

    转载自 WanderOCN的文章 C#-using用法详解 using 关键字有两个主要用途: (一).作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型. (二).作为语句,用于定义一个 ...

随机推荐

  1. Oracle 10g RAC 如何配置 VIP IPMP

    metalink note 283107.1介绍了如何设置VIP的IPMP,此处记录一下设置过程. o Existing 10g RAC installation ^^^^^^^^^^^^^^^^^^ ...

  2. Redhat 无线(Wifi)上网命令行配置

    小结两种命令行模式下配置无线wife的方法,实践测试通过(Red Hat Enterprise Linux release 6.0 Beta(Santiago)) 一.使用wpa_supplicant ...

  3. C99标准新特性的说明

    C99标准新特性的说明   一.说明 ====== 这里的讨论的是C语言的国际标准,即国际标准化组织ISO,制定的C语言标准.历史上ISO制定过4个版本的C语言标准,他们分别是:C90(ISO/IEC ...

  4. Cfree clion windows c语言 socket 网络编程

    server.c #include <stdio.h> #include <winsock2.h> #define SERVER_PORT 5208 //侦听端口 int ma ...

  5. c++策略模式(Strategy Method)

    别人的博客再讲策略模式时都会讲三国,策略类就是赵云的锦囊,锦囊里装着若干妙计.在打仗时想要用什么妙计,直接从锦囊里去取. 锦囊类: class context { public: context(IS ...

  6. 【转载】Python BeautifulSoup匹配字符串

    作者:鸡仔说链接:https://www.jianshu.com/p/ceb99aed4b2e來源:简书 BeautifulSoup中可以通过name和attrs去定位名称和属性,以找到特定的html ...

  7. p2150 [NOI2015]寿司晚宴

    传送门 分析 我们发现对于大于$\sqrt(n)$的数每个数最多只会包含一个 所以我们把每个数按照大质数的大小从小到大排序 我们知道对于一种大质数只能被同一个人取 所以f1表示被A取,f2表示被B取 ...

  8. 解决IE与FF 中 input focus 光标移动在最后的方案

    只要把input元素的id传进来即可 function moveCursor(id)  { var id = document.getElementById(id); id.focus(); var  ...

  9. 僵固式思维 OR 成长式思维

    有意无意中,看到这样的一篇文章,觉得非常富有正能量,而且也比较有同感.而且,不仅仅对于职场暂时失落或者失意的人有帮助,就是对学生,也一样的.故特分享,以共勉之. 我想每个新人进入职场之后都会遇到的第一 ...

  10. 奇妙的 Storage::url

    发现 这是我在做头像上传功能时发现的,下面是图片上传的业务逻辑. class AvatarController extends Controller { public function update( ...