求助判断空格
本帖最后由 cafa 于 2022-11-19 17:07 编辑想写这么一个程序,输入第一点,第二点后后执行命令1,当不需要输入第二点时,直接空格跳过并执行命令2。请教如何判断第二点的输入方式?
(setq ss (ssget))
(setq p1 (getpoint "\n指定第一点"))
(setq p2 (getpoint "\n指定第二点"))
(if 如果P2为空格或者鼠标右键则执行命令2,这句该怎么写。请大佬赐教
那就是没取到点,一般返回nil. AndyWang 发表于 2022-11-19 17:55
那就是没取到点,一般返回nil.
请问怎么表达呢?(if (= p2 nil) ? cafa 发表于 2022-11-19 18:24
请问怎么表达呢?(if (= p2 nil) ?
可以的,去试试就知道了。 本帖最后由 kucha007 于 2022-11-19 22:18 编辑
这样?
(defun C:TT (/ Old_Cmd SS P1 P2)
(setq Old_Cmd (getvar "cmdecho"))(setvar "cmdecho" 0)
(if (setq SS (SSget))
(progn
(setq P1 (getpoint "\n→请指定第一点"))
(setq P2 (getpoint "\n→请指定第二点"))
(cond
((and P1 P2)
(progn
(princ "\n→P1、P2都存在")(princ)
)
)
((and P1 (not P2))
(progn
(princ "\n→P1存在,但P2不存在")(princ)
)
)
((and (not P1) (not P2))
(progn
(princ "\n→P1、P2都不存在")(princ)
)
)
)
)
(progn
(princ "\n→未选择对象,命令结束")(princ)
)
)
(command "redraw")
(setvar "cmdecho" Old_Cmd)(princ)
)
可能需要用到Initget函数。
(if (null p2) (2模块)) kucha007 发表于 2022-11-19 22:13
这样?
是这样的,非常感谢 sto111 发表于 2022-11-19 22:37
可能需要用到Initget函数。
(if (null p2) (2模块))
好的,我试一下,非常感谢 AndyWang 发表于 2022-11-19 18:50
可以的,去试试就知道了。
好的,谢谢
页:
[1]