getpoint 如何在vlisp程序里面,跳过等待直接返回nil
本帖最后由 228378553 于 2024-6-25 14:53 编辑请教一下 怎么给getpoint传一个空格命令呢?就是说:在(getpoint)等待点击的时候,不点击左键而是按下空格,目的是让他返回一个nil
找点开源代码抄吧,例如跃动方程里面 你有种再说一遍 发表于 2024-6-25 15:28
找点开源代码抄吧,例如跃动方程里面
谢谢大佬指路,模型空间的类型是什么呀?:L 228378553 发表于 2024-6-25 16:41
谢谢大佬指路,模型空间的类型是什么呀?
模型空间是一个块表记录啊 你有种再说一遍 发表于 2024-6-25 16:47
模型空间是一个块表记录啊
OK我去回答加群问题试试 本帖最后由 fangmin723 于 2024-6-26 11:13 编辑
(getpoint)你不点击鼠标左键,直接按空格或者回车就能直接返回nil啊
要跳过等待直接返回nil,那你直接给他个nil不就行了
在AutoLISP(包括VLISP)程序中,如果你希望`getpoint`函数不暂停程序等待用户输入,而是直接返回`nil`,你可以通过设置一个条件来绕过这个函数的执行。一种常见做法是在调用`getpoint`之前检查一个标志变量,根据这个变量的值决定是否执行`getpoint`。如果想要跳过,你可以直接让程序返回`nil`。
下面是一个简单的示例,展示了如何根据一个自定义的标志变量`skip-getpoint`来决定是否跳过`getpoint`:
(defun my-getpoint (skip)
(if skip
(progn
(print "Skipping getpoint, returning nil.")
nil ; 直接返回nil
)
(getpoint) ; 正常执行getpoint并等待用户输入
)
)
(setq skip-getpoint t) ; 设置标志为真,表示要跳过getpoint
(setq my-point (my-getpoint skip-getpoint)) ; 调用函数
(print my-point) ; 输出结果,应该是nil
在这个例子中,`my-getpoint`函数检查变量`skip-getpoint`。如果其值为真(非NIL),则函数直接打印一条消息并返回`nil`,从而跳过了实际的点获取操作。如果需要正常执行`getpoint`,只需将`skip-getpoint`设置为`nil`即可。
fangmin723 发表于 2024-6-26 11:06
(getpoint)你不点击鼠标左键,直接按空格或者回车就能直接返回nil啊
要跳过等待直接返回nil,那你直接给他 ...
不好意思前辈,之前忙忘了,都忘记自己发帖了,我其实是想要把getpoint放在grread里面去用,这样就变相实现grread捕捉,可getpoint必须等待用户输入,所以会跟grread的左键点击冲突。
然后您提供的这种方式是直接跳过了getpoint函数
页:
[1]