明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 162|回复: 5

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

[复制链接]
发表于 2024-6-25 14:52 | 显示全部楼层 |阅读模式
本帖最后由 228378553 于 2024-6-25 14:53 编辑

请教一下 怎么给getpoint传一个空格命令呢?  就是说:在(getpoint)等待点击的时候,不点击左键而是按下空格,目的是让他返回一个nil
发表于 2024-6-25 15:28 | 显示全部楼层
找点开源代码抄吧,例如跃动方程里面
 楼主| 发表于 2024-6-25 16:41 | 显示全部楼层
你有种再说一遍 发表于 2024-6-25 15:28
找点开源代码抄吧,例如跃动方程里面

谢谢大佬指路,模型空间的类型是什么呀?
发表于 2024-6-25 16:47 | 显示全部楼层
228378553 发表于 2024-6-25 16:41
谢谢大佬指路,模型空间的类型是什么呀?

模型空间是一个块表记录啊
 楼主| 发表于 2024-6-25 16:51 | 显示全部楼层
你有种再说一遍 发表于 2024-6-25 16:47
模型空间是一个块表记录啊

OK  我去回答加群问题试试
发表于 2024-6-26 11:06 | 显示全部楼层
本帖最后由 fangmin723 于 2024-6-26 11:13 编辑

(getpoint)你不点击鼠标左键,直接按空格或者回车就能直接返回nil啊
跳过等待直接返回nil,那你直接给他个nil不就行了



在AutoLISP(包括VLISP)程序中,如果你希望`getpoint`函数不暂停程序等待用户输入,而是直接返回`nil`,你可以通过设置一个条件来绕过这个函数的执行。一种常见做法是在调用`getpoint`之前检查一个标志变量,根据这个变量的值决定是否执行`getpoint`。如果想要跳过,你可以直接让程序返回`nil`。

下面是一个简单的示例,展示了如何根据一个自定义的标志变量`skip-getpoint`来决定是否跳过`getpoint`:
  1. (defun my-getpoint (skip)
  2.   (if skip
  3.     (progn
  4.       (print "Skipping getpoint, returning nil.")
  5.       nil ; 直接返回nil
  6.     )
  7.     (getpoint) ; 正常执行getpoint并等待用户输入
  8.   )
  9. )

  10. (setq skip-getpoint t) ; 设置标志为真,表示要跳过getpoint

  11. (setq my-point (my-getpoint skip-getpoint)) ; 调用函数
  12. (print my-point) ; 输出结果,应该是nil

在这个例子中,`my-getpoint`函数检查变量`skip-getpoint`。如果其值为真(非NIL),则函数直接打印一条消息并返回`nil`,从而跳过了实际的点获取操作。如果需要正常执行`getpoint`,只需将`skip-getpoint`设置为`nil`即可。


您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-6-29 12:25 , Processed in 0.170696 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表