JerryFiedler 发表于 2022-7-5 22:59:36

选择否时出现entsel错误

我正在编写一个例程,其中一部分需要选择一个“text”对象。我正在测试选择,以确保它是文本。只要用户确实选择了一个对象,任何类型的对象,例程都可以正常工作。例程只是不断要求选择,直到它成为文本。我的问题是:如果你点击除对象之外的任何地方,你会收到一条“错误参数”的错误消息。我相信这是来自entsel命令的错误,但我不确定。下面是一段代码:
;;;仅选择文本对象并检索属性
(setq objtype“X”)
(while(/=objtype“TEXT”)
(setq txobj(entsel“\n选择要对齐的文本。”)
txcode(entget(car txobj))
对象类型(cdr(assoc 0 txcode))
))
很抱歉,这不符合“代码发布指南”,但我想不出如何获得编辑器工具栏并单击魔术符号!

BIGAL 发表于 2022-7-5 23:26:46

您可以键入代码开始-结束-去掉括号之间的空格,否则它将成为代码语句
 
[代码]
类型lips代码
[/代码]
 
可以在If中检查entsel返回的值,以确保它不是零

(if (/= (setq txobj(entsel "\nSelect the Text to Align.") nil)
(setq objtype (cdr (assoc 0 (entget (car txobj)))))
(progn
(Alert "you have not picked a object\nOr do you want to exit")
(setq ans (getstring "\nYes or no"))
(if (= ans "Y")(exit)) ;etc
) ; endprogn
) ; end if

JerryFiedler 发表于 2022-7-5 23:35:14

谢谢你,比格尔。在我发布我的问题后,我发现,在我的Lisp教科书中,如果没有选择任何内容,entsel返回nil。你的代码会让我走上正确的道路。谢谢你抽出时间。

BIGAL 发表于 2022-7-5 23:45:09

不用担心,注意代码中有一个错误/=你理解关于#的另一个问题吗
 
<p>(setq ans (getstring))</p><p>(do something)</p><p>)</p><p> need a /code here</p>

Tharwat 发表于 2022-7-5 23:59:54

比格尔,你需要重新检查一下你的第2号帖子
页: [1]
查看完整版本: 选择否时出现entsel错误