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