Ham007 发表于 2022-7-6 14:52:40

如何在ty之后强制进入

你好
 
我正在编写一个自动lisp脚本,从对象中绘制引线以指向其他项目(请参阅下面脚本的一部分)。我想知道是否有任何方法,在我按下“Y”(是)后,以避免需要点击回车键,因此程序要求我输入“连接到:”。我会感谢你的帮助。非常感谢。
 
(setq ldr2“Y”)
(同时(=ldr2“Y”)
 
;-- 获取引导点并绘制它
(setq pt1(获取点ip“\n连接到:”)
(setq pt2(极性ip(角度ip pt1)0.1625))--这是BOM表圆上的pt
(命令“_line”pt2 pt1”)
;-- 请另一位领导
 
(initget“Y”)
(setq ldr2(getkword“\N您需要额外的领导者吗?(是/否):”)

Lee Mac 发表于 2022-7-6 14:56:13

为什么不使用默认值,这样用户只需点击回车键?

Lee Mac 发表于 2022-7-6 15:00:13

可以这样指定默认值:
 

(or ldr2 (setq ldr2 "Yes"))
(initget "Yes No")
(setq temp (getkword (strcat "\nDo you need an extra leader? (Y/N) <" ldr2 ">: ")))
(or (not temp) (setq ldr2 temp)))

BIGAL 发表于 2022-7-6 15:04:00

检查getkword这是你想要的
 
引用lisp手册
(initget 1“Yes No”)
(setq x(getkword“选择是或否”))
 
我认为这个例子可以给出两个答案Y v's Y,我认为在“Yes”中的大写字母使它起作用,如果你添加其他单词作为小写,它们可能不会像你所想的那样起作用。

CAB 发表于 2022-7-6 15:07:17

一些变化:
(initget "Yes No")
(setq return (cond ((getkword "\nQuestion: Yes/No/<Yes>:"))
                  ("Yes")))
    (INITGET 0 "Yes No")
   (OR (SETQ return (GETKWORD "\nAre you sure? < Yes >: "))
       (SETQ return "Yes")
   )
(DEFUN c:Yesno (/ return)
(initget "Yes No")
(cond ((getkword "\nQuestion: Yes/No/<Yes>:"))
          ("Yes"))
)

David Bethel 发表于 2022-7-6 15:09:36

我更喜欢该场景的/=测试
 
大卫

Lee Mac 发表于 2022-7-6 15:13:06

一些好例子^^
 
但他们不记得最后输入的选项。。。

Ham007 发表于 2022-7-6 15:16:24

李,我用了你的代码,但如果我决定不再有任何领导者,我在输入“N”后仍然必须按enter键。我想要的是使“Y”或“N”成为函数的自动值,因此它将其视为“响应加回车”,而无需每次输入“Y”或“N”时都按回车键。

Lee Mac 发表于 2022-7-6 15:20:58

 
我意识到这一点,但我怀疑在这种情况下你能否避免撞到enter。

Lee Mac 发表于 2022-7-6 15:23:55

为什么不这样使用while语句:
 

(while (setq pt1 (getpoint ip "\nConnect to: "))
(setq pt2 (polar ip (angle ip pt1) 0.1625))
(command "_line" pt2 pt1 ""))
页: [1] 2
查看完整版本: 如何在ty之后强制进入