AutoLisp从入门到放弃(九)


本章主要讲解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)]: ")) 
  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值