CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 文档中心

关于控制用户输入函数条件(AutoLISP)

2023-1-8 12:00| 发布者: admin| 查看: 970| 评论: 0|来自: AutoCAD

摘要: 这 initget 函数提供对下一个用户输入函数调用的控制级别。

该函数提供对下一个用户输入函数调用的控制级别。initget

该函数建立各种选项供下一个 、 、 或函数使用(、 和 除外)。此函数接受两个参数,bits 和 string,这两个参数都是可选的。bits 参数指定一个或多个控制位,这些控制位启用或禁用下一个用户输入函数调用的某些输入值。string 参数可以指定下一个用户输入函数调用将识别的关键字。initgetentselnentselnentselpgetXXXgetstringgetvargetenv

建立的控制位和关键字仅适用于下一个用户输入函数调用。在那次通话之后,它们将被丢弃。应用程序不必再次调用来清除特殊条件。initgetinitget

设置输入选项

bits 参数的值将用户输入的类型限制为下一个用户输入函数调用。这样可以减少错误检查。initget

以下是一些可用的位值:

  • 1 - 不允许 null 输入
  • 2 - 不允许输入 0(零)
  • 4 - 不允许负输入

通过将值相加(以任意组合形式)创建介于 0 和 255 之间的位值,一次可以设置多个条件。如果 bits 未包含或设置为 0,则任何控制条件都不适用于下一个用户输入函数调用。(有关位设置的完整列表。initget

例如,如果在调用函数之前设置了这些值,则会强制用户输入大于 0 的整数值。getint

(initget (+ 1 2 4))
(getint "\nHow old are you? ")

此序列请求用户的年龄。如果用户尝试输入负值或零值,或者用户仅按 Enter 键或输入字符串(该函数拒绝输入非整数值的尝试),AutoCAD 将显示错误消息并重复提示。getint

设置关键字选项

可选的字符串参数指定下一个用户输入函数调用可识别的关键字列表。如果用户输入的输入与关键字的拼写匹配(不区分大小写),或者用户输入关键字的缩写,则用户输入函数将返回预定义的关键字之一。initget

注意:关键字不能包含下划线字符,因为它在关键字列表中具有特殊含义。下划线字符是全局关键字列表和本地化关键字列表之间的分隔符。

以下示例代码演示了如何在调用 之前定义两个关键字。程序会检查这些关键字并相应地设置输入值。initgetgetreal

(defun C:GETNUM (/ num)
  (initget 1 "Pi Two-pi")
  (setq num (getreal "Pi/Two-pi/<number>: "))
  (cond
    ((eq num "Pi") pi)
    ((eq num "Two-pi") (* 2.0 pi))
    (T num)
  )
)

向 的 bits 参数传递一个禁止 null 输入的值 1,向字符串参数传递一个表示两个关键字“Pi”和“Two-pi”的字符串值。该函数用于获取实数,发出以下提示:initgetgetreal

圆周率/双圆周率/<数字>:

结果被放置在局部变量符号中。如果用户输入一个数字,则该数字由 返回。但是,如果用户输入关键字 Pi(或简称 P),则返回关键字 Pi。cond 函数检测到这一点,并返回 的值。Two-pi 关键字的处理方式类似。numC:GETNUMgetrealPI

注意:还可以用于启用、 和接受关键字输入。initgetentselnentselnentselp

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2024-12-15 14:42

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部