AutoLisp从入门到放弃(九)

  • 一、等待输入相关函数
    • 1、getangle函数
    • 2、getcorner函数
    • 3、getdist函数
    • 4、getenv函数
    • 5、getint函数
    • 6、getorient函数
    • 7、getpoint函数
    • 8、getreal函数
    • 9、getstring函数
    • 10、getvar函数
    • 11、getkword函数

本章主要讲解Autolisp中一些常用的交互函数的使用。

一、等待输入相关函数

常用的等待输入相关函数如下:

函数 函数功能
(getangle [pt] [msg]) 暂停以等待用户输入角度,然后以弧度形式返回该角度。
(getcorner pt [msg]) 暂停等待用户输入矩形第二个角点的坐标。
(getdist [pt] [msg]) 暂停以等待用户输入距离。
(getenv variable-name) 以字符串方式返回指定的环境变量的值。
(getint [msg]) 暂停以等待用户输入一个整数并返回该整数。
(getkword [msg]) 暂停以等待用户输入一个关键字并返回该关键字。
(getorient [pt] [msg]) 暂停以等待用户输入角度,并返回该角度。
(getpoint [pt] [msg]) 暂停以等待用户输入点,并返回该点。
(getreal [msg]) 暂停以让用户输入一个实数并返回该实数。
(getstring [cr][msg]) 暂停以等待用户输入字符串,并返回该字符串。
(getvar varname) 获取一个 AutoCAD 系统变量的值。
(initget [bits] [string]) 为随后的用户输入函数调用创建关键字。

1、getangle函数

  • 参数
参数 必要性 参数含义
point 可省略 如果指定了point参数,用户可以再指定一个点来给 AutoLISP 输入一个角度。
msg 可省略 显示给用户的提示信息。
  • 返回值
返回值 说明
angle 用户指定的两点间的角度。
  • 示例

下面的样例代码说明了调用getangle如何传递不同的参数:

(setq #dAngle (getangle))                                ;; 两点均由用户指定,无提示信息。
(setq #dAngle (getangle (list 0 0 0)))                  ;; 用户指定一点,计算从点(0 0 0)到用户指定点之间的角度。
(setq #dAngle (getangle (list 0 0 0) "\n请指定方向:")) ;; 指定基点的同时在命令行输出提示信息。
(setq #dAngle (getangle "\n请指定方向:"))               ;; 只输出提示信息,两点均由用户指定。

2、getcorner函数

  • 参数
参数 必要性 参数含义
point 不可省略 用作基点的点。
msg 可省略 显示给用户的提示信息。
  • 返回值
返回值 说明
point 用户指定的点。
  • 示例

下面的样例代码说明了调用getcorner如何传递不同的参数:

(setq #ptCorner (getcorner (list 0 0 0)))
(setq #ptCorner (getcorner (list 0 0 0) "\n请指定另一角点:"))

3、getdist函数

  • 参数
参数 必要性 参数含义
point 可省略 二维或三维点。用作当前 UCS 中的基点。如果已经提供了 pt,则仅提示用户输入第二点。
msg 可省略 显示给用户的提示信息。
  • 返回值
返回值 说明
distance 用户指定的两点间的距离。
  • 示例

下面的样例代码说明了调用getdist如何传递不同的参数:

(setq #dDist (getdist))                          ;; 两点均由用户指定,无提示信息。
(setq #dDist (getdist(list 0 0 0)))                 ;; 用户指定一点,计算从点(0 0 0)到用户指定点之间的距离。
(setq #dDist (getdist(list 0 0 0) "\n请指定距离:"))    ;; 指定基点的同时在命令行输出提示信息。
(setq #dDist (getdist "\n请指定距离:"))             ;; 只输出提示信息,两点均由用户指定。

4、getenv函数

  • 参数
参数 必要性 参数含义
variable-name 不可省略 字符串,指定要读取的变量名。环境变量的拼写必须与系统注册表中的拼写完全一致(包括大小写)。
  • 返回值
返回值 说明
variable 字符串,代表指定环境变量的值。如果该变量不存在, getenv 函数返回 nil。
  • 示例
(getenv "ACAD")

5、getint函数

  • 参数
参数 必要性 参数含义
msg 可省略 提示信息。
  • 返回值
返回值 说明
num 整型数据
  • 示例
(setq #iNum (getint))
(setq #iNum (getint "\n请输入一个整数:"))

6、getorient函数

该函数的作用和用法与getangle函数基本一致,区别在于getorient 函数以逆时针方向测量由用户指定的两点所确定的直线与零弧度方向(正东方,即时钟三点钟位置)之间的角度。用户输入的角度是以当前的 ANGDIR 和 ANGBASE 设置为基准的。
然而,一旦该角度值被输入,对它的测量则是相对于零弧度(正东方)按逆时针方向进行的,而忽略系统变量 ANGDIR 和 ANGBASE 的设置。
因此,如果通过 UNITS 命令或通过设置系统变量 ANGBASE 和 ANGDIR,选择了一种不同的零度基准方向或角度增量方向,在使用 getorient 函数的过程中就必然会发生某种转换。

当需要一个旋转量(相对角度)时应使用 getangle 函数,而需要一个指定方向(绝对角度)时则应使用 getorient 函数。

用户不能输入一个 AutoLISP 表达式来响应 getorient 的请求。

7、getpoint函数

  • 参数
参数 必要性 参数含义
point 可省略 如果指定了point参数,会在指定的point拉出一条牵引线。
msg 可省略 显示给用户的提示信息。
  • 返回值
返回值 说明
point 用户指定的点。
  • 示例

下面的样例代码说明了调用getpoint如何传递不同的参数:

(setq #ptPoint (getpoint))
(setq #ptPoint (getpoint (list 0 0 0)))
(setq #ptPoint (getpoint (list 0 0 0) "\n请指定下一点:"))
(setq #ptPoint (getpoint "\n请指定一点:"))

8、getreal函数

  • 参数
参数 必要性 参数含义
msg 可省略 提示信息。
  • 返回值
返回值 说明
num 实型数据
  • 示例
(setq #dNum (getreal))
(setq #dNum (getreal "\n请输入一个实数:"))

9、getstring函数

  • 参数
参数 必要性 参数含义
cr 可省略 如果提供了该参数且其值不为 nil,那么输入的字符串可以包括空格且必须按 ENTER 键结束。否则,输入的字符串以空格键或 ENTER 键结束。
msg 可省略 提示信息。
  • 返回值
返回值 说明
string 用户输入的字符串。
  • 示例
(setq #str (getstring))
(setq #str (getstring T))
(setq #str (getstring "\n请输入一个字符串:"))
(setq #str (getstring T "\n请输入一个字符串:"))

10、getvar函数

  • 参数
参数 必要性 参数含义
varname 不可省略 字符串,指定要读取的变量名。
  • 返回值
返回值 说明
variable 字符串,代表指定系统变量的值。如果该变量不存在, getenv 函数返回 nil。
  • 示例
(getvar "OSMODE")          ;; 获取当前捕捉状态

11、getkword函数

最后,我们来介绍getkword函数。
在调用 getkword 函数之前必须先调用 initget 函数设置有效的关键字。用户不能输入一个 AutoLISP 表达式来响应 getkword 的请求。

  • 参数
参数 必要性 参数含义
strkey 可省略 用于提示用户的字符串。如果省略该参数,则 getkword 不显示任何提示信息。
  • 返回值
返回值 说明
string 字符串,表示与用户输入相匹配的关键字。如果用户输入为空(即仅按下 ENTER 键),或者用户没有使用 initget 函数设置一个或多个关键字,则本函数返回 nil。如果用户输入了无效关键字,getkword 将显示警告信息,并提示用户重试。
  • 示例

下例先调用 initget 函数创建关键字列表(“Yes”和“No”),并且不允许随后的 getkword 接受空输入(将 bits 设为 1),然后调用 getkword 函数:

(initget 1 "Yes No")
(setq #strKword (getkword "\n是否确定[是(Y)/否(N)]: "))

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

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

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

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

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

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

    AutoLisp从入门到放弃(十一) 一.常用字符串处理函数 1.ascii和chr函数 2.read函数 3.strcase函数 4.strcat和strlen函数 5.substr函数 6.wcm ...

  4. AutoLisp从入门到放弃(十四)

    AutoLisp从入门到放弃(十四) AutoLisp选择集操作 AutoLisp从入门到放弃(十四) 一.ssget 1.函数说明 2.参数说明 3.代码示例 二.ssadd.ssdel 1.函数说 ...

  5. AutoLisp从入门到放弃(六)

    AutoLisp从入门到放弃(六) 一.获取图元属性信息 二.修改图元属性信息 本章主要讲解如何通过AutoLisp代码查看.修改实体的所有属性信息,即图元信息. 一.获取图元属性信息 如果你是一个C ...

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

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

  7. AutoLisp从入门到放弃(七)

    AutoLisp从入门到放弃(七) 一.创建图元 二.删除图元 1.command命令 2.entdel函数 本章将介绍如何在AutoLisp代码中通过直接操作实体数据库的方式来新增和删除图元. 一. ...

  8. AutoLisp从入门到放弃(八)

    AutoLisp从入门到放弃(八) 一.修改图元图层 1.新建图层 2.删除图层 3.更改实体图层 二.修改图元颜色 本章将介绍如何使用AutoLisp操作图元的图层.颜色. 一.修改图元图层 使用l ...

  9. AutoLisp从入门到放弃(二)

    一.AutoLisp简介 AutoLisp是Autodesk公司开发的一种Lisp语言,旨在节省工程师的绘图时间,后也用来制作一些简单的绘图插件,甚至完成一个完整的CAD二次开发项目. 二.你的第一行 ...

最新文章

  1. mysql 查询 插入
  2. 如何用css实现等高布局。
  3. 计算机网络总线型结构优,计算机基础知识:计算机网络总线型拓扑结构的概述及优缺点...
  4. 2019年第十届蓝桥杯 - 省赛 - C/C++大学B组 - B. 年号字串
  5. iview的表格自定义_Vue中使用iview-UI表格样式修改和使用自定义模板数据渲染相关...
  6. P4146 序列终结者 平衡树 + lazy维护
  7. 淘宝PK京东:哥刷的不是广告,刷的是存在
  8. javaweb项目的文件结构
  9. 2021年特种设备气瓶充装(全国特种设备-P气瓶充装模拟考试题库一)安考星
  10. Chrome 截取长图
  11. CAD图纸被设置成只读格式,如何取消?
  12. windows2016服务器优化,Windows server 2016系统基本优化设置
  13. 10000字拆解:五个美妆新品牌私域背后的数据和逻辑
  14. 《数据库原理》实验报告DB3——数据完整性与安全性控制
  15. IntelliJ IDEA的安装及插件下载
  16. 【2017.10.08 智能驾驶/汽车电子】汽车电控常用英文缩写及功能之一
  17. 河南移动AI面试 面经
  18. 实现全托管,腾讯云服务网格的架构演进
  19. 如何将监控画面嵌入微信公众号进行直播
  20. C++面试常见题目问与答(汇总一)

热门文章

  1. 【CSS基础语法】CSS基础语法知识学习笔记汇总
  2. 集合框架练习—使用JAVA语言模拟斗地主洗牌、发牌并对牌进行排序案例代码。
  3. Spring系列13:Resource接口及内置实现
  4. react onClick回调
  5. 【技术应用】模型微调:如何利用深度学习框架进行模型微调?
  6. 详解DOM对象中clientWidth、offsetWidth等属性
  7. docker如何配置加速器
  8. Python 服务 及问题 服务没有及时响应启动或控制请求
  9. Spark Stream 流式处理
  10. 所有操作系统分类UNIXmacOS类UNIXWindows