CAD新军 发表于 2020-5-4 14:08:28

getkword用鼠标点选不一致求解

本帖最后由 CAD新军 于 2020-5-4 14:09 编辑

刚学lisp时就学过getkword,但我发现多数情况下,开启动态输入以后,虽然CAD正确弹出选项,可是用鼠标点选选项并不能把结果传到getkword,比如这是Lee Mac的例子:
(defun c:test ( )
    (initget "Alpha Beta Gamma")
    (getkword "\nChoose an option <Alpha>: ")
)


1. 输入“A” “B” “G” 回车,正确。没问题
2. 直接在命令行文字选项用鼠标点 中其中一个,正确。没问题
3. 点选动态输入选项,oops,得到的是nil

这个问题2021好像修复了。问题是,部分字符,即使是较早版本的CAD的getkword也能正确通过鼠标点选的,比如下面这句:
(defun c:tt()
(initget "Y N")
(alert (getkword "\n some message here: ")))
没找到什么规律。。。是不能多于1个字符吗?

nuan1989 发表于 2025-2-11 01:22:13

找到原因了,需要带上括号首字母

(initget "Abc Def")
(print (getkword "\n输入选项 : "))
(print)

(initget 1 "Yes No")
;实测cad2007, ()括号内需要带上initget的首字母,或者像是下面这样直接带上数值.
(print (getkword "是否确定[是(Y)/否(N)]: "))
(print)

(initget 1 "1 2")
(print (getkword "是否确定[是(1)/否(2)]: "));括号内用数值.
(print)

e2002 发表于 2020-5-7 11:26:59

CAD新军 发表于 2020-5-6 11:36
原来那个就是版主啊。你测试alpha beta那个也能直接鼠标点选吗?请问测试cad版本是哪个版本?我从14,18 ...

我测试的是2020与2021。
2020用内置的vlide测试,2021用vscode测试。都是正常返回关键字字符串(点击动态输入的选项菜单中的Alpha,返回值就是:“Alpha”)

但如果使用的是 (getint "\nSpecify an option ") ;这时候点击动态选项菜单,例如点击hi(1),返回不是1,而是 hi(1),这样就出错了。目前仅AutoCAD 2021 for mac中能正确返回。

CAD新军 发表于 2020-5-10 18:33:15

e2002 发表于 2020-5-7 11:26
我测试的是2020与2021。
2020用内置的vlide测试,2021用vscode测试。都是正常返回关键字字符串(点击动 ...

我测试。getkword确实不行啊,CAD2020中文版,用鼠标点一定是nil 。 CAD2021则可以正常用鼠标点
(defun c:test ( )
    (initget "Alpha Beta Gamma")
    (getkword "\nChoose an option <Alpha>: ")
)

1028695446 发表于 2020-5-5 13:41:15

oops是什么鬼???????

e2002 发表于 2020-5-5 20:25:03

我这里测试怎么没问题呢?关键字在动态输入的选项菜单中鼠标点选能正确返回关键字。
我在知乎上回答了你的这个问题,具体你看一下:

https://zhuanlan.zhihu.com/p/138206225

除了 getkword,还有 getint 也会用做输入命令分支。

CAD新军 发表于 2020-5-6 11:36:31

e2002 发表于 2020-5-5 20:25
我这里测试怎么没问题呢?关键字在动态输入的选项菜单中鼠标点选能正确返回关键字。
我在知乎上回答了你的 ...

原来那个就是版主啊。你测试alpha beta那个也能直接鼠标点选吗?请问测试cad版本是哪个版本?我从14,18,20都是不正常的

e2002 发表于 2020-5-10 20:36:30

本帖最后由 e2002 于 2020-5-10 20:44 编辑

CAD新军 发表于 2020-5-10 18:33
我测试。getkword确实不行啊,CAD2020中文版,用鼠标点一定是nil 。 CAD2021则可以正常用鼠标点
没想到是中文版的问题。

我一般都用英文版,所以没遇到这个bug。2021中文版正常吗?

如果2021中文版中没问题,那就是已经发现并修复了这个bug。

CAD新军 发表于 2020-5-10 23:27:53

本帖最后由 CAD新军 于 2020-5-10 23:29 编辑

我听到你说正常后就想会不会是中文版问题,还下载了英文版尝试了几次安装,因为之前装过绿色版,所以暂时装不上,提示错误。工作最近又比较重,所以就没去研究怎么安装。想不到真的是中文版问题
2021没有这个问题

wjl1014 发表于 2021-8-24 12:33:54

我是14版的cad,win系统。(getkword "\n选择定位板的形式默认为矩形 [矩形(F)/圆形(Y)]<F> "),关键字用”圆括号“下拉可用鼠标选取,”尖括号“不行。

guankuiwu 发表于 2024-12-26 11:23:13

2010中文版好的,英文版也不行
页: [1] 2
查看完整版本: getkword用鼠标点选不一致求解