228378553 发表于 2024-6-25 14:52:44

getpoint 如何在vlisp程序里面,跳过等待直接返回nil

本帖最后由 228378553 于 2024-6-25 14:53 编辑

请教一下 怎么给getpoint传一个空格命令呢?就是说:在(getpoint)等待点击的时候,不点击左键而是按下空格,目的是让他返回一个nil

你有种再说一遍 发表于 2024-6-25 15:28:34

找点开源代码抄吧,例如跃动方程里面

228378553 发表于 2024-6-25 16:41:08

你有种再说一遍 发表于 2024-6-25 15:28
找点开源代码抄吧,例如跃动方程里面

谢谢大佬指路,模型空间的类型是什么呀?:L

你有种再说一遍 发表于 2024-6-25 16:47:57

228378553 发表于 2024-6-25 16:41
谢谢大佬指路,模型空间的类型是什么呀?

模型空间是一个块表记录啊

228378553 发表于 2024-6-25 16:51:28

你有种再说一遍 发表于 2024-6-25 16:47
模型空间是一个块表记录啊

OK我去回答加群问题试试

fangmin723 发表于 2024-6-26 11:06:41

本帖最后由 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`即可。


228378553 发表于 2024-8-3 10:01:36

fangmin723 发表于 2024-6-26 11:06
(getpoint)你不点击鼠标左键,直接按空格或者回车就能直接返回nil啊
要跳过等待直接返回nil,那你直接给他 ...

不好意思前辈,之前忙忘了,都忘记自己发帖了,我其实是想要把getpoint放在grread里面去用,这样就变相实现grread捕捉,可getpoint必须等待用户输入,所以会跟grread的左键点击冲突。

然后您提供的这种方式是直接跳过了getpoint函数
页: [1]
查看完整版本: getpoint 如何在vlisp程序里面,跳过等待直接返回nil