直到按下enter?
我想做一个“多”类的命令,将不断要求用户“选择对象”,改变它,并要求另一个。直到用户点击“回车”或“空格”(当然也可以是esc,但这不是重点)。类似这样:
(while (setq SS (ssget)) (ChangeObj SS) )
但即使用户试图选择某个内容,但他单击了空白区域->选择为零,此代码也会存在。我不想那样。
Trim命令的工作方式与我希望的一样:
它会提示用户选择要剪切的边。
即使用户点击空白区域,它也会要求用户再次选择边缘。
直到用户点击“回车”、“空格”或“Esc”。
怎么做? 我不是一个Lisp程序的专家,但你想要什么都可以做到。我有一个多圆角命令,它的工作原理与您的要求类似。也许这会给你一些启示
(DEFUN C:MFILT ()
(setvar "filletrad" 0.125)
(SETQ A (ENTSEL "\nPick Master Line: ")
B (ENTSEL "\nPick Secondary Line: ")
)
(COMMAND "FILLET" A B)
(WHILE B
(SETQ B (ENTSEL "\nPick Secondary Line: "))
(COMMAND "FILLET" A B)
)
)
只有右键单击或选择某个内容,ssget才会退出。
如果您正在寻找单选样式,这将起作用:
(setvar "errno" 0)
(while (and (/= (getvar "errno") 52)
(not Ent)
)
(setq Ent (entsel "\nSelect some stuff: "))
(princ "\nMissed, try again.")
) 如果您真的想要多个选择,但您的函数使用了单个ENT:
大概
(setvar "errno" 0)
(while (and (/= (getvar "errno") 52)
(not ss))
(setq ss (ssget)))
(mapcar 'ChangeObj
(vl-remove-if 'listp
(mapcar 'cadr (ssnamex ss))))
艾伦,你有关于“errno”变量的信息吗?我从未真正使用过它,我想了解更多
干杯
李 李,
这是我对厄尔诺的看法。多年来,人们一直怀疑它的可靠性。也许这已经改变了一些。此外,它是一个关联列表,而不是位标志。
大卫 非常感谢大卫,这正是我想要的-谢谢你的时间
页:
[1]