使用if初始化getkword(&G)
我试图用if和语句让用户选择一个对象,然后我问用户一个问题。我试图用默认选项提示,并且只允许最大值/最小值。然而,当我将initget语句放在(if)之前时,它似乎工作不正常(initget "Maximum mInimum")
(if
(and
(setq ent (selectif "\nSelect structure type to test: " prd))
(setq *dropans*
(cond
(
(getkword
(strcat "\nDo you want to test for drop <"
(setq *dropans*
(cond (*dropans*)
("Maximum")
)
)
">: "
)
)
)
(*dropans*)
)
) 我建议如下:
(if (setq ent (selectif "\nSelect structure type to test: " prd))
(progn
(or *dropans* (setq *dropans* "Maximum"))
(initget "Maximum mInimum")
(if (setq tmp (getkword (strcat "\nDo you want to test for drop <" *dropans* ">: ")))
(setq *dropans* tmp)
)
)
)
不需要在if语句的测试表达式中包含第二个提示,因为第二个提示不能返回null。 谢谢李!我将它包含在and语句中的唯一原因是,我将有第三个提示,可以返回null。如果我理解正确,我需要两个If语句,一个在另一个里面?
这是实现它的一种方法;否则,在测试第三个提示符返回的值之前,可以在测试表达式中使用progn语句来计算许多表达式。 啊,这是个好主意!我忘了可以在and语句中使用progn函数。 不客气您可以在任何地方使用progn函数,因为这只是一个S表达式,就像任何其他AutoLISP函数的求值一样。
页:
[1]