CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoLISP 开发指南

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

2023-1-6 12:28| 发布者: admin| 查看: 846| 评论: 0|来自: AutoCAD

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

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

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

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

设置输入选项

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

以下是一些可用的位值:

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

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

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

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

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

设置关键字选项

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

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

下面的示例代码演示如何在调用 to 之前定义两个关键字。程序检查这些关键字并相应地设置输入值。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参数of传递了一个值1,该值禁止null输入,字符串参数传递一个表示两个关键字“Pi”和“Two-pi”的字符串值。该函数用于获取实数,发出以下提示:initgetgetreal

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

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

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

路过

雷人

握手

鲜花

鸡蛋

最新评论

2024年新出cad图库素材

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

GMT+8, 2024-5-7 06:58

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部