请帮诊断程序循环问题在哪?
当选中text文字时, (princ (cdr (assoc 0 (entget aaa))))能显示出“text”,但一直提示“重新点选text文字:”,是循环条件“ (/= (cdr (assoc 0 (entget aaa))) "text")”有问题吗?请各位大侠指点!(defun c:tt(/ aaa )
(while (setq aaa (car (entsel "\n 点选text文字:")))
(princ "\n")
(princ (cdr (assoc 0 (entget aaa))))
(while (/= (cdr (assoc 0 (entget aaa))) "text")
(setq aaa (car (entsel "\n 重新点选text文字:")))
)
(princ "ok")
)
) 不就是想点选文字么用ssget 过滤 (ssname (ssget ":S:E" '((0 . "TEXT"))) 0) 我的实际用途是一次选一个text文字,选中后自动修改,再选下一个text文字,如此循环;当未选中text文字时,能接着重选,而不是退出。 xzd716 发表于 2021-8-21 13:56
我的实际用途是一次选一个text文字,选中后自动修改,再选下一个text文字,如此循环;当未选中text文字时, ...
......你在这个基础上结合你原来的 代码 修改一下 (defun c:tt(/ aaa )
(while (and (setq aaa (car (entsel "\n 点选text文字<回车结束>:")))
(= (setq name (cdr (assoc 0 (entget aaa)))) "TEXT")
)
(princ "\n 点选text文字")
;下面进行修改
)
(princ)
)
本帖最后由 xzd716 于 2021-8-21 14:24 编辑
解决了,是大小写问题,谢谢各位指点!
页:
[1]