KRBeckman 发表于 2022-7-6 11:41:09

如果/然后接受多个pos

在lisp中创建if/then senario时,如何将表达式视为多个值的true。
 
例如,我需要询问用户他们想要更改什么视口,顶部、前部或右侧。。。但我希望它接受“Top”或“T”表示Top。
 
这行得通吗
 
(setq vpn (if (= vp (or "Top" "T") (2))
 
“T”或“Top”会将vpn设置为2吗?
 
还有,我有办法自己测试吗?

lpseifert 发表于 2022-7-6 11:54:28

用T和Top试试这个(还有F、Front、R、Right)

(initget 1 "Top Front Right")
(setq ans (getkword "Top, Front or Right"))
(cond
((= ans "Top") (setq vpn 2))
((= ans "Front") (setq vpn 3))
((= ans "Right") (setq vpn 4))
)

JohnM 发表于 2022-7-6 12:05:32

看看这两个函数
(initget“Abc Def \u Ghi Jkl”)(getkword“\n输入选项(Abc/Def):”)输入A返回Ghi,输入\u J返回Jkl。

KRBeckman 发表于 2022-7-6 12:18:19

在这种情况下,我使用initget/getkword函数,但现在我会做一个if/then,这样可以允许多个正确的输入,例如:
 
如果x=(顶部或底部),则执行函数,否则退出程序

Lee Mac 发表于 2022-7-6 12:22:03

 
您可以使用or函数,也可以使用member函数

KRBeckman 发表于 2022-7-6 12:38:22

哈哈,我现在这听起来很有趣,但我需要使用Visual Lisp的帮助。。。
 
我搜索了“or”函数,在概念选项卡下显示:
 
“$(或,val1[,val2,…,val9])”
 
我有几个问题。
 
“$”是什么意思?
为什么“[]”符号中有“.val1,…,val9”?

Lee Mac 发表于 2022-7-6 12:45:45

$
 
页: [1]
查看完整版本: 如果/然后接受多个pos