总结得很好的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. ActiveX每次网页打开提示活动内容运行

    (2)       设置允许活动内容运行. 在启动调试,网页经常会呈现如下提示框,每次都要确认,很麻烦. 以下方法可以消除这个提示框. 在IE中打开Internet 选项对话框,选择高级选项卡,勾选里 ...

  2. Cable master(二分-求可行解)

    Inhabitants of the Wonderland have decided to hold a regional programming contest. The Judging Commi ...

  3. 安装sshpass:No package sshpass available

    安装sshpass的时候,报了如下错误: No Package sshpass available 更改软件源之后也无效.直到看到StackOverFlow上的一个问题:https://stackov ...

  4. 当一个SQL语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序

    当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序 1.执行where xx对全表数据做筛选,返回第1个结果集. 2.针对第1个结果集使用g ...

  5. 【CF#338D】GCD Table

    [题目描述] 有一张N,M<=10^12的表格,i行j列的元素是gcd(i,j) 读入一个长度不超过10^4,元素不超过10^12的序列a[1..k],问是否在某一行中出现过 [题解] 要保证g ...

  6. linux 软链接 硬链接

    查看文件sun.txt   加上参数i 是显示节点 inode [root@bogon test]# ls -li sun.txt 10006225 -rw-r--r--. 1 root root 0 ...

  7. 643. Maximum Average Subarray I 最大子数组的平均值

    [抄题]: Given an array consisting of n integers, find the contiguous subarray of given length k that h ...

  8. 551. Student Attendance Record I 从字符串判断学生考勤

    [抄题]: You are given a string representing an attendance record for a student. The record only contai ...

  9. xamarin.droid自己的示例工程有些都装不上模拟器,是因为它的architectures选项没设对

    也许是版本更迭导致的,有些老工程的architectures不对,如果x86不勾的话,是不能在genymotion的模拟器上跑的.

  10. 487C Prefix Product Sequence

    传送门 题目大意 分析 因为n为质数所以i-1的逆元唯一 因此ai唯一 代码 #include<iostream> #include<cstdio> #include<c ...